javascript - window.open 延迟

标签 javascript popup

我正在尝试在模式中打开外部链接。下面的代码工作正常:

$('[data-link]').on('click', function(event){
    event.preventDefault();
    var link = $(this).attr('href');
    window.open(link, 'newwindow', 'width=300, height=250');
});

但是,如果我将 window.open 函数放入延迟函数调用中,我的浏览器上会收到一条“弹出窗口被阻止”消息:

$('[data-link]').on('click', function(event){
    event.preventDefault();
    var link = $(this).attr('href');
    _.delay(function(){
        window.open(link, 'newwindow', 'width=300, height=250');
    }, 0);
});

延迟多少并不重要,它只是不适用于延迟调用。有谁知道为什么会发生这种情况以及我如何让它发挥作用?

最佳答案

弹出窗口拦截器只允许您在直接响应用户事件的情况下打开弹出窗口。

一旦调用 setTimeout(),您就不再直接响应事件,也无法接通。

关于javascript - window.open 延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44008837/

相关文章:

javascript - jQuery .css 主体不透明度

javascript - 分享推文时会打开两个弹出窗口吗?

javascript - 从框架中弹出音乐播放器

javascript - 有人可以使用我的 api key 对我的 YouTube channel 进行 CRSF 攻击吗?

javascript - 960gs(网格系统)和最佳 html/css 实践

javascript - 取消已关闭的 Marionette Backbone View 中的超时

javascript - 检查是否有弹出窗口被打开

javascript - 如何使用 firebase 9 推送来实现此目的?

javascript - 获得顶点折线图的正确尺寸

java - jTextField 验证弹出窗口