【问题标题】:How to bypass the pop blocker through javascript如何通过 javascript 绕过弹出窗口拦截器
【发布时间】:2016-12-10 19:28:36
【问题描述】:

我正在尝试通过 javascript 打开新选项卡,但弹出窗口阻止了它。如何绕过弹出窗口阻止程序。我试过这个但没有用。我在 chrome、Edge 和 firefox 中测试了这个:

var interval =5000;
setTimeout(function() { 
    $("#dummyButton")[0].click();
}, interval);

我的 html 代码包含锚点

<a id="dummyButton" href="http://www.w3schools.com" target="_blank" style="display:none;"></a>

我什至试过这个:

<button id="dummyButton" style="display:none;"></button>

 setTimeout(function() {    
    $("#dummyButton").click();
}, interval);
$("#dummyButton").on('click',function(){
    window.open("https://facebook.com", '_blank');
});

我在一些帖子中读到,如果从事件中调用 window.open,则弹出窗口不会阻塞。但它不起作用。

【问题讨论】:

  • 我没有使用 window.open
  • 您正试图在逻辑上创建一个会导致新窗口打开的事件。它很可能会遇到相同的限制。
  • 如果我允许弹出窗口阻止程序,这没有什么问题。
  • 对我来说听起来像是一个“XY 问题”问题,除非您试图让弹出广告绕过旨在阻止它们的机制。如果您不制作弹出式广告,也许您应该解释为什么您尝试延迟打开窗口,我们可以尝试提供一种更好的方法来解决您的问题,而该方法不需要绕过弹出窗口拦截器。

标签: javascript jquery


【解决方案1】:

如果绕过弹出窗口拦截器这么容易,那么每个人都会这样做。

大多数现代浏览器只允许创建新窗口以响应用户的真实点击事件。使用.click() 模拟事件不算数。

【讨论】:

    猜你喜欢
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    相关资源
    最近更新 更多