首页 > 代码库 > window.open打开新窗口被浏览器拦截的处理方法
window.open打开新窗口被浏览器拦截的处理方法
一般我们在打开页面的时候, 最常用的就是用<a>标签,如果是新窗口打开就价格target="_blank"属性就可以了, 如果只是刷新当前页面就用window.location.reload(), 在某些特殊情况下也要用到另外一种新窗口打开的方法,就是window.open(),这个方法有一个问题就是会被基本所有的浏览器所拦截,要收到点击确认打开才可以,这样的体验可以说是非常不友好的~~ 感觉像一个有病毒的程序~~
所以我们如果一定要用这个方法,但是又不想其被浏览器拦截, 有几种方法,都可以解决,具体如何~~
第一种:
//所以常用的方法就是在超链接里加入onclick事件,如 <a href="javascript:void(0)" onclick="window.open()"></a> //这样用户点击这个超链接,浏览器会认为它是打开一个新的链接,所以就不会拦 截。
第二种:
setTimeout(‘window.open(url);‘, 500); //使用 setTimeout 包装一下,也可以防止被浏览器拦截。注意这里的超时时间不能太短,否则也会被拦截。
第三种:
//时候我们会遇到想要弹出一个窗口,可是却是在onckick事件执行后,才去弹出来的,这时就会被浏览器拦截,我们可以通过下面的方法来避免,就是 先用window.open打开一个窗口,然后修改地址。如 var tempwindow=window.open(‘_blank‘); //打开一个窗口,然后用tempwindow.location=‘http://www.baidu.com‘;使这个窗口跳转到百度,这样就会呈现弹出百度窗口的效果了。
个人觉得第一种方法>第三种方法>第二种方法~~~具体哪个性能更好,没有深入测试过,毕竟这个属性真的很少用~ 或许还有更好的方法~~
window.open打开新窗口被浏览器拦截的处理方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。