• 【转载】window.open被浏览器拦截的解决办法


    今天在处理程序的过程中,发现window.open方法会被浏览器拦截,导致无法打开新页面,查阅相关资料后发现,主要原因是浏览器为了维护用户安全和体验,禁止在javascript中直接使用window.open(url)来打开新的链接,window.open(url,”_self”)改变当前的窗口是可以生效的。为了实现window.open打开新窗口不被浏览器拦截,我们只能通过模拟用户操作的方式来实现。

    我们可以模拟用户点击a标签的操作来实现这个功能,代码如下:

    //新窗口打开网页
    function openWin(url) {
        try {
            var el1 = document.createElement('a');
            el1.setAttribute("target", "_blank");
            el1.setAttribute("id", "openWin");
            el1.setAttribute("href", url);
            document.body.appendChild(el1);
            document.getElementById("openWin").click();//点击事件
            document.body.removeChild(el1);
        }
        catch (e) {
            window.open(url);
        }
    }

    首先创建了个A标签,然后将url赋值给a标签,将设置好的a标签添加到Body中,js调用a标签的click事件。

    扩展阅读:Javascript读取和设置Cookie值。 

    备注:此文章转载自博主个人技术站点:IT技术小趣屋。原文链接:查看原文

    博主个人技术交流群:960640092,博主微信公众号如下:

  • 相关阅读:
    CF1066E Binary Numbers AND Sum
    CF1063B Labyrinth
    CF1063A Oh Those Palindromes
    CF1066C Books Queries
    CF1060D Social Circles
    CF1059C Sequence Transformation
    CF1059B Forgery
    CF1060C Maximum Subrectangle
    【LYOI2016】EasyRound1
    【bzoj2242】计算器
  • 原文地址:https://www.cnblogs.com/xu-yi/p/10501685.html
Copyright © 2020-2023  润新知