美文网首页
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