window.open方法打开新窗口被浏览器拦截问题

使用window.open打开新窗口时经常会被浏览器拦截,自己尝试解决方案如下:

a标签替代
<a href="javascript:void(0)" onclick="window.open('http://www.baidu.com', '_blank');">click打开新窗口</a>

或者

<a href="javascript:void(0)" onclick='aaa();''>click打开新窗口</a>
function aaa() {
  window.open('http://www.baidu.com', '_blank');
}

或者

ele.onclick = function() {
  window.open('http://www.baidu.com', '_blank');
}

或者

ele.onclick = function() {
  newWindow('http://www.baidu.com', 'bbb')
}
function newWindow(url, id) { 
  var a = document.createElement('a'); 
  a.setAttribute('href', url); 
  a.setAttribute('target', '_blank');
  a.setAttribute('id', id); 
  if(!document.getElementById(id)) { 
    document.body.appendChild(a);
  } 
  a.click(); 
}
重定向

先通过用户点击打开一个新的空白窗口,然后再对新打开的页面进行重定向。

ele.onclick = function() {
  var tempWindow = window.open('', '_blank', ''); //打开一个新的空白窗口
  tempWindow.location.href = 'http://www.baidu.com';  //对新打开的页面进行重定向
}

下面方法不可行。

setTimeout(function() {
  window.open('http://www.baidu.com', '_blank');
}, 100);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容