欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-27 22:32:55
今天在处理程序的过程中,发现window.open方法会被浏览器拦截,导致无法打开新页面,查阅相关资料后发现,主要原因是浏览器为了维护用户安全和体验,禁止在javascript中直接使用window.open(url)来打开新的链接,window.open(url,”_self”)改变当前的窗口是可 ......

今天在处理程序的过程中,发现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技术小趣屋。原文链接:查看原文