JavaScript:在新标签页中打开链接

时间:2011-02-24 11:43:48

标签: javascript

我想创建一个JavaScript,在每个链接中放置属性target="_blank",以便链接在新标签页中打开。我就这样做了:

function open_links_in_new_tabs() {
    var links = document.documentElement.getElementsByTagName( "a" );
    for(var link in links) {
        link.setAttribute("target", "_blank");
    }
}

window.onload = function() { open_links_in_new_tabs(); }

但是,这不起作用。你知道错误在哪里吗?

谢谢,

伊万

4 个答案:

答案 0 :(得分:5)

foo in bar对象NodeList语法doesn't work(a.k.a。“document.getElementsByTagName返回的内容”)。

使用普通的for (var i = 0; i < links.length; i++)(当然,使用links[i]代替link)循环,它应该有效。

答案 1 :(得分:0)

你在这里使用for... in循环略有错误。试试这个:

for(var link in links) {
    links[link].setAttribute("target", "_blank");
}

编辑虽然我的示例适用于这种情况,但Boldewyn的正确之处在于,如果您的脚本不对元素进行操作,这将产生意外结果。

答案 2 :(得分:0)

我在stackoverflow上对此进行了测试,它似乎适用于所有链接:)

var links = document.getElementsByTagName("a");

for(var i = 0; i < links.length; ++i) {
  links[i].setAttribute('target', '_blank');
}

答案 3 :(得分:0)

为什么不使用jQuery,如果你想使用jquery那么这里是代码:

$(document).ready(function(){
    $('a').attr("target","_blank");
})