zoukankan      html  css  js  c++  java
  • 【转载】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,博主微信公众号如下:

  • 相关阅读:
    9.19 数组 冒泡排序和二分法
    9,18 考试
    html5学习拓展
    第七天,
    第六天 js 开始
    第五天 列表 流
    第四天 样式,框架
    硬件攻城狮设计需要考量的11个关键因素
    步进电机的驱动方式
    MOS管防反接电路设计
  • 原文地址:https://www.cnblogs.com/xu-yi/p/10501685.html
Copyright © 2011-2022 走看看