防止浏览器拦截的window.open新窗口方案
2014-08-22 00:44
295 查看
背景
当前的浏览器为了保证用户体验,在很多场合下禁止了window.open打开新窗口,下面就给出一些方案,最大程度上的实现新窗口打开一个链接。
方案
思路
其实做法很简单,首先模拟A标签点击打开新窗口,若失败再直接调用window.open方法。
问题
目前无法在异步的情况下调用该方法。如下:
本文为原创文章,转载请注明出处:http://www.cnblogs.com/zernmal/
当前的浏览器为了保证用户体验,在很多场合下禁止了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('http://niu.xunlei.com/', '_blank'); //当前窗口打开 windowOpen('http://niu.xunlei.com/', '_self');
思路
其实做法很简单,首先模拟A标签点击打开新窗口,若失败再直接调用window.open方法。
问题
目前无法在异步的情况下调用该方法。如下:
//以下做法将得不到期望的结果,会被浏览器阻止 $.get("http://www.a.com/ajax",function(){ windowOpen('http://niu.xunlei.com/', '_blank'); });
本文为原创文章,转载请注明出处:http://www.cnblogs.com/zernmal/
相关文章推荐
- 如何防止window.open打开的弹出窗口被浏览器拦截
- 防止浏览器拦截的新窗口打开链接方案
- 利用Response.Redirect 在新窗口中打开,防止window.open新窗口打开被拦截
- js window.open新打开窗口总是被浏览器拦截的问题
- window.open浏览器弹出新窗口被拦截—原因分析和解决方案
- window.open浏览器弹出新窗口被拦截
- window.open打开新窗口被浏览器拦截的处理方法
- window.open打开新窗口被浏览器拦截的处理方法
- window.open打开新窗口,防止浏览器阻止弹窗解决办法
- Response.Redirect 防止window.open新窗口打开被拦截
- window.open浏览器弹出新窗口被拦截—原因分析和解决方案
- ajax请求响应中用window.open打开新窗口会被浏览器拦截的解决方式
- 利用Response.Redirect 在新窗口中打开,防止window.open新窗口打开被拦截
- 各浏览器对 window.open() 的窗口特征 sFeatures 参数支持程度存在差异
- jquery 新开窗口 防止浏览器拦截
- 各浏览器对 window.open() 的窗口特征 sFeatures 参数支持程度存在差异
- ajax后 使用window.open() 浏览器出现拦截的解决办法
- 解决弹出的窗口window.open会被浏览器阻止的问题(自定义open方法)
- ajax请求 用新窗口打开 防止浏览器阻止和拦截
- window.open被浏览器拦截的解决方案