1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 防止浏览器拦截的新窗口打开链接方案

防止浏览器拦截的新窗口打开链接方案

时间:2023-10-23 17:03:41

相关推荐

防止浏览器拦截的新窗口打开链接方案

背景

当前的浏览器为了保证用户体验,在很多场合下禁止了window.open打开新窗口,下面就给出一些方案,最大程度上的实现新窗口打开一个链接。

方案

//打开新链接方法实现function windowOpen(){var a = document.createElement("a");a.setAttribute("href", url);if(target == null){target = '';}a.setAttribute("target", target);document.body.appendChild(a);if(a.click){a.click();}else{try{var evt = document.createEvent('Event');a.initEvent('click', true, true);a.dispatchEvent(evt);}catch(e){window.open(url);}}document.body.removeChild(a);}//新窗口打开windowOpen('/', '_blank');//当前窗口打开 windowOpen('/', '_self');

思路

其实做法很简单,首先模拟A标签点击打开新窗口,若失败再直接调用window.open方法。

问题

目前无法在异步的情况下调用该方法。如下:

//以下做法将得不到期望的结果,会被浏览器阻止$.get("/ajax",function(){windowOpen('/', '_blank');});

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。