zoukankan      html  css  js  c++  java
  • jquery实现不被浏览器拦截的弹窗方式

    最近做项目,需要用到弹窗,一开始直接使用的window.open()打开新窗口,毫无疑问,新窗口直接被浏览器拦截了。

    于是稍微研究了一下浏览器的弹窗拦截策略,发现如果是用户即时点击而导致的弹窗,浏览器不会进行拦截,就像是a标签的行为那样,浏览器会认为这是用户主动打开的窗口,因此不会将这个弹窗视为恶意弹窗进行拦截。

    那么问题就简单了,直接使用jQuery模拟超链接(<a>)被点击,当按下一个按钮时,想打开一个新的标签页,可以模拟链接被按下,然后打开链接。

    但是在jQuery中,使用a.click(), a.trigger('click')等都不会引起链接默认事件被执行,这个和a标签的点击事件有关。我们每次点击a标签的链接,触发的是a标签包含的文字的原始点击事件而进行的跳转。

    示例代码如下所示:

    $('#alert-success').append('<a href="http://www.baidu.com" target="_blank"><span id="test">test</span></a>');
    $('#alert-success a #test').click();//这里点击的是a标签包含的文字
    $('#alert-success a').remove();//删去a标签
  • 相关阅读:
    POST、GET请求中文参数乱码问题
    表的复制——sql语句
    mysql之limit m,n
    nullpointerxception——处理思路
    public-private-protected-默认缺省 的区别
    final关键字的作用
    使用注解来构造IOC容器
    成功的背后!(给所有IT人)
    jQuery对象复制
    键盘录入, if语句
  • 原文地址:https://www.cnblogs.com/pfr-blog/p/7402636.html
Copyright © 2011-2022 走看看