美文网首页
window.open方法打开新窗口被浏览器拦截问题

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

作者: 乘风破浪55 | 来源:发表于2016-10-08 14:46 被阅读3539次

使用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);

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/pqeuyttx.html