1

该站点如何在绕过 Chrome 的弹出窗口阻止程序时触发其弹出窗口?

http://undertexter.se/

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

4

6 回答 6

1

OUTDATED Origin 资源和小提琴不再起作用。

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

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

http://undertexter.se/获取脚本并开始拒绝。

经过几个步骤后,我得到了以下代码,我认为浏览器制造商没有计划支持这样的东西。

现在我祝你好运,将它用于你自己,但我认为它是邪恶的。

在 js fiddle 上查看结果:它与以下相反:

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

http://jsfiddle.net/W9BdS/

于 2013-07-31T17:54:44.700 回答
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>
于 2013-08-05T10:29:02.187 回答
0

使用 JQuery 试试这个

        $('#yourCotrolId').on('click', function() {
    window.open('yourLink','...','width=1080 height=640')
});
于 2014-11-20T15:11:11.143 回答
0

window.open当不在click事件处理程序中调用时被现代浏览器阻止。

我自己在使用 Rails 的format.js响应时遇到了这个问题,并编写了一个小插件,使显示 JS 弹出窗口就像调用一样简单window.open()

Popup("<div>Hello world</div>").show('up')
于 2016-06-19T22:12:27.023 回答
-1

您可以使用 .trigger 方法来模拟用户操作:

<a href="javascript:" onClick="window.open('example.html','example','width=200,height=200');">Click</a>
$('a').trigger('click');
于 2013-07-29T09:50:22.993 回答
-1

.trigger()不能用来 mimc 这样的原生浏览器事件,可以用 . simulate()simulate.js模仿此类事件。

在您的文件中包含模拟.js 并使用,

$('a').simulate('click');

于 2013-07-29T10:27:47.600 回答