弹出窗口没有用户操作?

时间:2013-07-29 09:45:23

标签: javascript popupwindow

该网站在绕过Chrome的弹出窗口拦截器时如何触发其弹出窗口?

http://undertexter.se/

我认为弹出窗口阻止程序只允许window.open,如果它是由用户操作触发的,但这不是这里的情况,那么他们是如何做到的呢?

6 个答案:

答案 0 :(得分:1)

如果您第一次访问网站(空缓存)并点击文档上的某个位置,我发现Chrome中有一个弹出窗口。 刷新并再次单击它后,如果未删除缓存,则不会发生任何事情。

让我们开始逆向工程游戏......

从中获取脚本 http://undertexter.se/和startet refuscation。

经过几个步骤后,我得到了以下代码,我认为浏览器制造商并未计划支持此类代码。

现在我希望你能为自己使用它,但我觉得这很邪恶。

查看js小提琴的结果: 它的反面是:

http://www.wigetmedia.com/tags/undertexter.se.js

http://jsfiddle.net/W9BdS/

答案 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');