window.open(url)新窗口打开链接被浏览器拦截解决方案
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了window.open(url)新窗口打开链接被浏览器拦截解决方案相关的知识,希望对你有一定的参考价值。
参考技术A 在浏览器的安全机制里,非用户触发的window.open(url)来打开新的链接方法是会被拦截的。(window.open(url,”_self”)改变当前的窗口是可以生效的)。只有直接使用js调用 window.open(url); 尤其是ajax请求回调或异步回调之后调用,打开新窗口时是会被拦截。常见解决方法:
1. 在超链接里加入onclick事件
<a href="javascript:void(0)" onclick="window.open(url)"></a>
2. 延迟打开
setTimeout('window.open(url);', 500); 注意, 延迟时间不能太短 否则也会被拦截
3. 通过JS打开新窗口会被拦截,换一种实现方式
var newwindow=window.open('_blank'); // 先打开页面
newwindow.location='http://www.xxxx.com'; // 后更改页面地址
以下是js的点击触发事件,是用户触发,所以不会被拦截:
ele.onClick = function()
window.open('http://xxx.com')
);
以上是关于window.open(url)新窗口打开链接被浏览器拦截解决方案的主要内容,如果未能解决你的问题,请参考以下文章
js window.open(url)为啥会自动下载文件,而不是打开文件?
chrome window.open(url '_blank') 打开新窗口
window.open(url, windowname, opts) 在新选项卡中打开,而不是在 Firefox 中打开新窗口