不被浏览器屏蔽拦截的打开窗口的方法
(2013-05-24 11:08:49)
标签:
浏览器屏蔽拦截阻止窗口 |
分类: 前端技术开发 |
现在总结一下,常见正常弹出窗口失效的原因:
1.使用window.open,但是定义窗口名,也就是在打开窗口传入name参数,因为window.open只能打开唯一的窗体名为name的窗体。所以有些人会以为被浏览器拦截屏蔽了。
2.使用异步的ajax,通过ajax向服务器请求,在请求完成后再打开窗口的操作,如果是使用异步的方式,将出现延时,这是浏览器就会以为不是用户触发的操作,这时只要设置同步的方式即可。笔者就是因为这个原因。
可能存在替代方案:
既然想到弹窗,固然是因为有这方面的需求,目前‘浏览器无法拦截的弹出窗口’是不可能的,能不能找到替代方案。这里提供两个方案:
1.如果是弹窗广告,一般的做法是在页面document绑定click事件或者的srcoll事件,因为一般打开网页都会点一下或者是滚一下鼠标。所以就很容易的弹窗了(这里以技术出发,笔者代表绝大部分用户不接受这种广告方式)。
2.如果是弹出通知信息,就更容易,不用这么鬼鬼祟祟了,直接弹出div
的“窗口就行”。
如果有这方面的需求的,看到这篇文章应该会或多或少的有所收获,如果找不到解决方案,请给我留言,希望能够共同探讨。