我正在尝试在模式中打开外部链接。下面的代码工作正常:
$('[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/