$("#alink").click(); // 触发了a标签的点击事件,但是没有触发页面跳转
("alink").click(); //既触发了a标签的点击事件,又触发了页面跳转
把 “下一步” 改为 “<span >下一步</span>” 即给A标签中的文字添加一个能被jQuery捕获的元素,然后$("#spanId").click();,才可以触发页面跳转。
原文:不被浏览器屏蔽拦截的打开窗口的方法
之所以会想要写这篇文章,是因为我在最近的项目中使用Js打开新的窗体时被拦截了,因此,让我产生了对浏览器拦截屏蔽新窗体的兴趣,想了解一下为什么会被拦截。
现在总结一下,常见正常弹出窗口失效的原因:
1.使用,但是定义窗口名,也就是在打开窗口传入name参数,因为只能打开唯一的窗体名为name的窗体。所以有些人会以为被浏览器拦截屏蔽了。
2.使用异步的ajax,通过ajax向服务器请求,在请求完成后再打开窗口的操作,如果是使用异步的方式,将出现延时,这是浏览器就会以为不是用户触发的操作,这时只要设置同步的方式即可。笔者就是因为这个原因。
可能存在替代方案:
既然想到弹窗,固然是因为有这方面的需求,目前‘浏览器无法拦截的弹出窗口’是不可能的,能不能找到替代方案。这里提供两个方案:
1.如果是弹窗广告,一般的做法是在页面document绑定click事件或者的srcoll事件,因为一般打开网页都会点一下或者是滚一下鼠标。所以就很容易的弹窗了(这里以技术出发,笔者代表绝大部分用户不接受这种广告方式)。
2.如果是弹出通知信息,就更容易,不用这么鬼鬼祟祟了,直接弹出div的“窗口就行”。
如果有这方面的需求的,看到这篇文章应该会或多或少的有所收获,如果找不到解决方案,请给我留言,希望能够共同探讨。