window.open延迟

时间:2017-05-16 18:17:15

标签: 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);
});

延迟是多少并不重要,它只适用于延迟通话。有谁知道为什么会这样,我怎么能让它发挥作用?

1 个答案:

答案 0 :(得分:2)

弹出窗口阻止程序只允许您在直接响应用户事件时打开弹出窗口。

致电setTimeout()后,您不再对事件做出直接回应,也无法通过。