该站点如何在绕过 Chrome 的弹出窗口阻止程序时触发其弹出窗口?
我认为弹出窗口阻止程序只允许 window.open 如果它是由用户操作触发的,但这里不是这种情况,所以他们是怎么做到的?
该站点如何在绕过 Chrome 的弹出窗口阻止程序时触发其弹出窗口?
我认为弹出窗口阻止程序只允许 window.open 如果它是由用户操作触发的,但这里不是这种情况,所以他们是怎么做到的?
OUTDATED Origin 资源和小提琴不再起作用。
我发现如果您第一次访问网站(空缓存)并单击文档上的某个位置,chrome 中会打开一个弹出窗口。刷新并再次单击它后,如果未删除缓存,则不会发生任何事情。
所以让我们开始逆向工程的游戏......
从 http://undertexter.se/获取脚本并开始拒绝。
经过几个步骤后,我得到了以下代码,我认为浏览器制造商没有计划支持这样的东西。
现在我祝你好运,将它用于你自己,但我认为它是邪恶的。
在 js fiddle 上查看结果:它与以下相反:
http://www.wigetmedia.com/tags/undertexter.se.js
在我自己的服务器上进行了测试,这会在 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>
使用 JQuery 试试这个
$('#yourCotrolId').on('click', function() {
window.open('yourLink','...','width=1080 height=640')
});
window.open
当不在click
事件处理程序中调用时被现代浏览器阻止。
我自己在使用 Rails 的format.js
响应时遇到了这个问题,并编写了一个小插件,使显示 JS 弹出窗口就像调用一样简单window.open()
:
Popup("<div>Hello world</div>").show('up')
您可以使用 .trigger 方法来模拟用户操作:
<a href="javascript:" onClick="window.open('example.html','example','width=200,height=200');">Click</a>
$('a').trigger('click');
.trigger()
不能用来 mimc 这样的原生浏览器事件,可以用 . simulate()
从simulate.js
模仿此类事件。
在您的文件中包含模拟.js 并使用,
$('a').simulate('click')
;