该网站在绕过Chrome的弹出窗口拦截器时如何触发其弹出窗口?
我认为弹出窗口阻止程序只允许window.open,如果它是由用户操作触发的,但这不是这里的情况,那么他们是如何做到的呢?
答案 0 :(得分:1)
如果您第一次访问网站(空缓存)并点击文档上的某个位置,我发现Chrome中有一个弹出窗口。 刷新并再次单击它后,如果未删除缓存,则不会发生任何事情。
让我们开始逆向工程游戏......
从中获取脚本 http://undertexter.se/和startet refuscation。
经过几个步骤后,我得到了以下代码,我认为浏览器制造商并未计划支持此类代码。
现在我希望你能为自己使用它,但我觉得这很邪恶。
查看js小提琴的结果: 它的反面是:
http://www.wigetmedia.com/tags/undertexter.se.js
答案 1 :(得分:0)
在我自己的服务器上测试,这会在Ubuntu 12.04上的Chromium 28的新(独立)窗口中打开http://google.com。 Adblock处于有效状态。
<script type="text/javascript">
document.addEventListener('click', function() {
window.open('http://google.com','...','width=1080 height=640')
})
</script>
答案 2 :(得分:0)
使用JQuery
尝试此操作 $('#yourCotrolId').on('click', function() {
window.open('yourLink','...','width=1080 height=640')
});
答案 3 :(得分:0)
window.open
事件处理程序中调用时, click
被现代浏览器阻止。
我在使用Rails&#39; format.js
回复并写了a small plugin,这使得显示JS弹出窗口就像调用window.open()
一样简单:
Popup("<div>Hello world</div>").show('up')
答案 4 :(得分:-1)
您可以使用.trigger方法模拟用户操作:
<a href="javascript:" onClick="window.open('example.html','example','width=200,height=200');">Click</a>
$('a').trigger('click');
答案 5 :(得分:-1)
.trigger()
不能用于模仿此类原生浏览器事件,您可以使用simulate()
中的。simulate.js
来模仿此类事件。
在您的文件中包含simulate.js并使用,
$('a').simulate('click')
;