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

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

a标签替代
click打开新窗口

或者

click打开新窗口
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方法打开新窗口被浏览器拦截问题)