gpt4 book ai didi

javascript - 在单击事件处理程序中延迟 window.open

转载 作者:行者123 更新时间:2023-12-01 01:45:29 26 4
gpt4 key购买 nike

几天来,我一直在尝试(但没有成功)延迟打开新窗口,而 Chrome 大部分时间都不会阻止它。延迟对于我的任务至关重要,因为在打开窗口之前必须发生一些动画,并且我无法让浏览器阻止新选项卡的打开。这是我的代码示例:

element.on("click", function(e){
e.preventDefault();
var self = $(this),
url = self[0].href;

window.setTimeout(function(){
window.open(url);
}, 1000);
});

element 是 jQuery 对象(更准确地说是 anchor 元素)。我注意到,如果我像这样直接传递字符串,成功率会更高

window.open("http://example.com");

我已经在 Explorer(没问题)、Chrome(有问题)、Firefox(没问题)和 Opera(有问题)中尝试过这个解决方案。我快要疯了,因为我已经尝试了我能记得的一切。同步ajax调用,人为触发点击,创建假 anchor 元素,人为触发点击事件。没有什么工作正常。额外问题(如果有人知道如何解决问题):有没有办法随时随地从代码中调用 window.open?

最佳答案

这在 Chrome 中对我有用 http://jsbin.com/wuqopukayuwi/4/

var $element = $('#link');


$element.on('click', function () {

var url= $(this).attr('href');

window.setTimeout(function(){

var windowObjRef = window.open(url);

console.log(windowObjRef);

}, 2000);

});

要检查的事项:

  • 显然,请仔细检查您是否已在 Chrome 中为您的域启用弹出窗口(它会在第一次尝试弹出新窗口时提示您

  • 这是因为 Chrome 期望能够以编程方式再次访问该窗口,因此希望您将对该方法的响应声明为变量。至少,这就是我让它工作的方式......

关于javascript - 在单击事件处理程序中延迟 window.open,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26215113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com