浏览器被拦截解决办法参考
相信做web前端或者使⽤JS的朋友都会遇到需要在新窗⼝打开页⾯的情况,现在浏览器⼤都具有弹出窗⼝拦截功能,所以传统的window.open()不再那么好⽤了。借鉴于⽹上查到的⽅法和我个⼈的实践,把弹出新窗⼝的⽅法给⼤伙都介绍⼀下。
第⼀种、使⽤原⽣javascript的window.open()⽅法(⼤部分情况下会被浏览⾃阻⽌)
QQ信箱登录第⼆种、模拟表单(form)提交,原理是指定表单的action为想要打开的URL地址,target设置为"_blank"
不过模拟表单提交的⽅法经很多⽹友反映说也会被阻⽌
第三种、模拟超链接(<a>)被点击,⽤jquery的写法如下,注意最后openLink[0]是模拟的原⽣DOM对象被点击的(使⽤Jquery对象的话没反应)
var openLink = $("");
openLink.attr('href', 'URL地址');
openLink[0].click();
这种⽅法个⼈⽐较推荐的,因为简单⽅便
第四种、利⽤浏览器的冒泡事件(这种⽅法稍微有点复杂,呵呵)
clickOpenWin: function(f){
var dataKey = "clickOpenWin.dataKey"
社会保险与商业保险的区别var me = $(this);
var A = me.data(dataKey);
var returnData = null;
if(!A){
A = $("");
me.data(dataKey, A);
A.click(function(e){
if(returnData){
A.attr("href", returnData);
}else {温柔的2022年跨年文案
A.before(me);
e.stop();
}
});
提现收多少手续费}
me.click(function(){
个人所得税扣除标准
A.attr("href", "#|");
returnData = f.apply(this, arguments);
});
}
1. ⾸先,说⼀下最终的效果,是实现⽤ “A” 包含你要触发弹窗的元素,原来的click事件要返回弹窗的URL 对应这⼀句 “returnData =
f.apply(this, arguments);”
2. 然后就要说到弹窗拦截的策略了,具体我就不说了,反正策略⾥是不会拦截 “A” 本⾝吧
3. 最后就是合成了,⽤A包含后,因为事件会冒泡,所以利⽤正常的点击,⽣成动态的链接地址给A,触发A的原始点击事件,就完成了
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论