当前位置: 首页 > news >正文

阿里巴巴网站推广方法网站建设制作费用

阿里巴巴网站推广方法,网站建设制作费用,做网站购买模板,seo技术建站今天下午是一个非常痛苦的,想要实现一个功能: 父页面打开了一个新的页面(浏览器打开一个新的窗口),并在子页面提交数据之后,父页面的数据要同步更新。 难点:父页面是一个表格列表,…

今天下午是一个非常痛苦的,想要实现一个功能:

父页面打开了一个新的页面(浏览器打开一个新的窗口),并在子页面提交数据之后,父页面的数据要同步更新。

难点:父页面是一个表格列表,有分页功能,更新数据之后,要保证页面还在原来的页面。

把子页面关闭之后返回原来的页面,更新对应数据。

简单说下最开始使用的方法,以及最终采用方法,中间尝试的方法暂时略过不谈了…

  1. 关闭当前窗口,强制刷新父页面
    window.opener.location.reload();刷新父窗口
    window.close();关闭当前窗口
    

    上面两行代码网上推荐的比较多的,但是存在问题:

    1. window.opener意思是当前浏览器窗口的打开者,就是指父窗口。window.opener.location.reload()强制刷新了父窗口,也就是说,并不会保留父窗口原有的状态。
    2. window.close();只是单纯的将当前窗口关闭了,焦点并不一定会回到父窗口。(若是打开子窗口的时候,同时打开了其它网页的窗口,关闭子窗口,焦点可能回到你刚刚浏览过的窗口)

在实现这个功能的时候,尝试过诸如以下方法:

  1. 利用浏览器缓存父窗口参数,带参数刷新父窗口。

  2. 在子组件内调用父窗口的方法(因为不是直接父子组件的关系,还尝试利用中间组件实现子组件内调用父组件方法)。

  3. 在子组件内调用父窗口的方法(第二个方法没有成功,又尝试了将父组件方法暴露给window对象也没成功)。

  4. 成功解决问题

尝试了很多方法多没有成功,我又回到了起点,开始分析问题。

分析之后发现其实这个大问题可以分为两个小问题:

  1. 子窗口关闭后,焦点需要回到父窗口;
  2. 焦点回到父窗口后,父窗口需要带状态刷新页面。

那我就一一攻破,首先是第一个小问题,查到了一些资料之后,发现可以实现,代码如下:

  1. 子窗口关闭,焦点回到父窗口

    我的功能都是基于vue项目的,所以代码结构都是基于vue

    // 父窗口文件中
    mounted() {// 设置当前窗口的名字,便于当某些窗口页面关闭时,跳回当前窗口window.name = 'home';
    }// 子窗口文件中,可以写在某一个方法中
    // 回到父窗口home页面
    window.open(window.opener.location.href, window.opener.name);
    // 关闭当前浏览器
    window.close();
    

    第一步实现了,我能正确的回到父窗口了,但是父窗口的对应数据并没有刷新。

  2. 父窗口需要带状态刷新页面

    父窗口文件代码如下:

    methods: {handleVisiable(e){if(e.target.visibilityState === 'visible') {this.initData();}}
    },
    mounted() {// 设置监听,当本页面打开的新页面关闭时,触发事件document.addEventListener('visibilitychange', this.handleVisiable);
    },
    

    这样便实现了对应的功能。

    正当我准备提交测试时,客户的需求变了,计划赶不上变化呀!!,客户要求:

    在页面关闭的时候,先倒计时5秒,之后再关闭。

    我查了一些资料,发现浏览器有保护机制,除了用户直接点击的链接或按钮跳转,浏览器不会拦截,其它浏览器都会拦截。

    也就是说:

    设置一个定时器,定时器时间结束后,触发方法回到父窗口并关闭当前页面的逻辑不得行了。

    关闭窗口的方法能够起作用,但不一定会回到父窗口了,这肯定不行。

    后来找了一些资料的实现方法

    说是在页面上设置一个隐形按钮,满足条件之后触发这个按钮。我尝试过这种方法,这种方法跳转时父窗口时,相当于重新访问了一下,并不会带状态刷新,所以这种方法也是不可取的。

    后续跟客户沟通后,找到了另一种方法:不使用倒计时了,使用提示信息。当满足关闭当前窗口并跳回父窗口的条件时,弹出提示信息,让用户自己操作是否返回主页。代码如下:

    // 回到home页面,浏览器会拦截不是用户直接操作的跳转页面
    backHome() {this.$confirm('所有数据均以保存,是否返回主页?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {// 回到父窗口home页面window.open(window.opener.location.href, window.opener.name);// 关闭当前浏览器window.close();}).catch(() => {window.open('about:blank');window.close();});
    },
    

    以上就是所有的内容了,如果有更好的方法,请多多留言!!!

http://www.hkea.cn/news/562097/

相关文章:

  • 保险网站建设优缺点seo代码优化步骤
  • 如何快速建网站百度电脑版入口
  • 山东省建设工程信息网站最近最新的新闻
  • 免费网站建设方案锦绣大地seo官网
  • 电子商务的网站建设牛排seo系统
  • 资源收费网站怎么做网站快速优化排名官网
  • 招标网哪个网站信息可靠百度站长工具网站
  • 郑州七七网站建设互联网推广公司
  • 佛山做外贸网站代理商百度收录技术
  • 公司网站建设需要什么今日热搜第一名
  • 烟台建设企业网站网站快速收录入口
  • 怎么做繁体字网站网络营销公司注册找哪家
  • 做ppt介绍网站吗网站搜索引擎优化工具
  • 深圳网站建设有没有市场百度搜索推广的五大优势
  • 网站建设好的图片百度互联网营销
  • 柳州网站制作公司seo优化什么意思
  • 网站建设做的好的公司淘宝关键词优化怎么弄
  • 手机网站用模版方象科技的企业愿景
  • 沈阳网站建设技术公司排名公司市场营销策划方案
  • 赣州网站建设怎样石家庄最新消息
  • 公司注册地址和经营地址不一致可以吗长春seo招聘
  • 好的做问卷调查的网站好推广有奖励的app平台
  • 有专业设计网站吗百度指数与百度搜索量
  • 网站的整体结构百度云网盘资源搜索引擎入口
  • 咸阳网站建设哪家专业杭州优化公司在线留言
  • 地板网站建设门户网站
  • 新增备案网站负责人人工智能培训心得体会
  • 帮境外赌场做网站是否有风险百度企业号
  • 网站换了服务器百度seo排名优化公司哪家好
  • 海南网站建设制作网络营销效果评估