jQuery自动单击多个链接

时间:2018-08-04 19:08:22

标签: javascript jquery

我生成了多个链接,以允许客户下载文件。所有链接都类似:

<a href="http://example.com/index.php?main_page=download&order=3&id=5" class="downloadLink">File 1</a>
<a href="http://example.com/index.php?main_page=download&order=3&id=6" class="downloadLink">File 2</a>
<a href="http://example.com/index.php?main_page=download&order=3&id=7" class="downloadLink">File 3</a>

我想在页面加载时自动开始下载(显示“另存为”弹出窗口或直接下载)。

是否有使用jQuery的简单方法?我设法提出了这段代码

$(document).ready(function()  {
    $( ".downloadLink" ).each(function() {
        var a_href = '';
        $( this ).on( "click", function() {
            var a_href = $(this).attr('href');
            window.location.href = a_href;
            alert(a_href);
        });
        $( this ).trigger('click');
    });
});

,但似乎不起作用-只有最新链接显示“另存为”弹出窗口。但是,将显示所有3条警报。我在做什么错了?

谢谢!

2 个答案:

答案 0 :(得分:1)

点击后,您可以打开每个链接的窗口/标签。由于网址是文件下载链接,因此将提示用户保存文件。保存/取消新窗口/选项卡将关闭,仅保留主页。

请检查以下代码。在此,单击链接后,将防止默认行为,并且每个下载链接都在新窗口中打开。 由于网址是下载链接,因此将提示用户下载文件,并且在保存/取消时,新窗口将关闭,而父窗口保持不变。

$(document).ready(function()  {
  $('a.downloadLink').on('click', function(event){
    event.preventDefault();

    var clicked_lnk = $(this);
    window.open(clicked_lnk.attr('href'));

    $('a.downloadLink').not(clicked_lnk).each(function(){
        window.open($(this).attr('href'));
    });
  });
});

代码'$('a.downloadLink')。not(clicked_lnk).each(function(){...}'中的'.not(clicked_lnk)'是为了防止循环发生的连锁点击事件循环单击一个元素。

答案 1 :(得分:1)

感谢Tanvir,找到了解决方案。

$(document).ready(function()  {
    $( ".downloadLink" ).each(function() {
        var a_href = '';
        $( this ).on( "click", function() {
            var a_href = $(this).attr('href');
             window.open(a_href);
        });
        $( this ).trigger('click');
    });
});

因此,不是使用window.location.href,而是使用window.open-这不是最漂亮的解决方案,但它似乎可以工作...