如何查找页面上的链接,将它们推送到阵列并通过每次单击数组中的5个链接打开?

时间:2013-09-25 19:04:25

标签: javascript jquery html hyperlink

我正在寻找一种方法,只需点击一下即可在新标签页中打开几个链接。

这是我写的一些HTML代码。

<ul>
  <li><a href="http://google.com">Google</a></li>
  <li><a href="http://bing.com">Bing</a></li>
  <li><a href="http://ebay.com">Ebay</a></li>
  <li><a href="http://amazon.com">Amazon</a></li>
</ul>
<hr>
<a href="#" onclick="">Open all links above by one click!</a>

UPD:如果可能的话,如果它会搜索包含<li></li>的页面上的所有链接,将它们推送到数组,并且点击链接打开后会很棒来自阵列的下一个4个链接。

jsFiddle example

4 个答案:

答案 0 :(得分:3)

不要质疑你的动机(因为你会被弹出窗口拦截器阻挡),

function open4links () {
    var links = ['http://...', 'http://...', 'http://...', 'http://...'];
    for (var i = 0; i < links.length; i++) {
        window.open(links[i], '_blank');
    }
}

(the a element).onclick = open4links;

答案 1 :(得分:1)

使用window.open

$('a').click(function(e) {
    e.preventDefault();
    $('li a').each(function(){
        window.open($(this).attr("href"), '_blank');
    });
});

正如您在JsFiddle中所看到的,大多数浏览器都不会接受这一点,因为它被视为垃圾邮件。

答案 2 :(得分:1)

此处,这适用于我(基于更新的请求):http://jsfiddle.net/R7qFv/4/

这会跟踪哪些链接已被打开,因此每次单击该链接时,它都会打开列表中的下一个链接。

$("#openlinks").on("click", (function(){
    var count = 0, nAtOnce = 4, $links = $("li a");
    var openLinks = function(){
        for (var i = 0; i < nAtOnce && count < $links.length; i++) {
            window.open($links.eq(count++).attr("href"), '_blank');
        }
    };
    return openLinks;
})());

我是用jQuery写的,因为它对我来说比较容易,但我相信如果需要你可以翻译。

答案 3 :(得分:0)

使用此功能查找html代码中的所有链接,并在其他窗口中打开

<script type="text/javascript">
function OpenLinks(){
    var arr = [];

    $("#list a").each(function(){
            arr.push(jQuery(this).attr("href"));
    });

    for(var i =0; i < arr.length;i++){
        window.open(arr[i]);
    }
}
</script>

obs:使用jquery!