Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript (单击事件后)如何在每次打开后延迟打开新选项卡中的链接列表_Javascript_Jquery - Fatal编程技术网

Javascript (单击事件后)如何在每次打开后延迟打开新选项卡中的链接列表

Javascript (单击事件后)如何在每次打开后延迟打开新选项卡中的链接列表,javascript,jquery,Javascript,Jquery,我正在尝试制作一个脚本(用于Greasemonkey)(在访问特定页面时), 如果您单击我插入页面的链接 (链接“不做任何事情”,即我使用event.preventDefault();) 要在新选项卡中打开页面中的所有链接, 但每次打开标签之间有延迟,例如500毫秒 我有这个代码(基于此) var z=($('table td').find('a'));//通过jQuery进行选择 $(“#mylink”)。在('click',函数(事件){ event.preventDefault(); va

我正在尝试制作一个脚本(用于Greasemonkey)(在访问特定页面时),
如果您单击我插入页面的链接
(链接“不做任何事情”,即我使用
event.preventDefault();

要在新选项卡中打开页面中的所有链接,
但每次打开标签之间有延迟,例如500毫秒

我有这个代码(基于此)

var z=($('table td').find('a'));//通过jQuery进行选择
$(“#mylink”)。在('click',函数(事件){
event.preventDefault();
var$this=$(this);

对于(i=0;i首先,您使用的是jQuery。为什么不充分利用它呢?您可以使用jQuery方法代替
for
循环,而不是
setInterval()
,对于这个用例,您应该使用
setTimeout()

var z = ($('table td').find('a'));         // selection via jQuery
$("#mylink").on('click', function(event){
    event.preventDefault();
    var $this = $(this);

    var interval = 0;   //set the starting point for the timeout interval

    z.each(function() {
        var href = $(this).attr('href');

        setTimeout(function() {
            window.open(href, '_blank');
        }, interval);

        interval += 1500;   //up the interval to ensure a delay between opening

    });
});

附带说明,我希望用户期待此功能,因为这可能会很烦人。此外,大多数现代浏览器都会阻止这些弹出窗口。只要我的两分钱。

setInterval(“window.open(z[I].href,'.\u blank')”,500)
fyi,您为第一个参数提供了一个字符串而不是函数。感谢您的注意。我想到了这个答案。因此,我将其更正为
setInterval(“window.open”(“+z[I].href+”,“\u blank”)”,500)
但它只需等待0.5秒,然后同时触发所有URL(即使使用
setTimeout
)是的,那正是我想要的。谢谢!
var z = ($('table td').find('a'));         // selection via jQuery
$("#mylink").on('click', function(event){
    event.preventDefault();
    var $this = $(this);

    var interval = 0;   //set the starting point for the timeout interval

    z.each(function() {
        var href = $(this).attr('href');

        setTimeout(function() {
            window.open(href, '_blank');
        }, interval);

        interval += 1500;   //up the interval to ensure a delay between opening

    });
});