Angular2项目中浏览器拦截弹出窗口的解决方法

来源:互联网 发布:网络信息工作有哪些 编辑:程序博客网 时间:2024/06/05 07:50

Angular2项目中浏览器拦截弹出窗口的解决方法

为什么把项目是Angular2的放到了前边?
因为正常也页面网上已经很多解决方案。请自行百度或Google。

现象:当window.open为用户触发事件内部或者加载时,不会被拦截,一旦将弹出代码移动到ajax或者一段异步代码内部,马上就被拦截了。

原因:这个属于浏览器设置,当浏览器检测到非用户操作产生的新弹出窗口,则会对其进行阻止。因为浏览器认为这不是一个用户希望看到的页面。

方案:

  1. 在异步调用之前,即service的then函数之前,声明变量。

let editorWindow = window.open();

  1. 在then函数里修改属性值

editorWindow.location.href = "http://www.baidu.com"

两句话,很简单。

附一个一般的处理方法:
《window.open浏览器弹出新窗口被拦截—原因分析和解决方案》
http://blog.csdn.net/u011159417/article/details/53692536