我想在新标签页中打开某些链接。由于我无法将其直接设置到<a>
标记中,因此我希望将链接放入具有特定类名的<span>
标记中,并通过JavaScript设置目标属性。
我认为这很容易,但我无法让它发挥作用:
addOnloadHook(function () {
document.getElementByClassName('newTab').getElementsByTagName('a').setAttribute('target', '_blank');
});
<span class="newTab"><a href="http://www.com">Link</a></span>
我做错了什么?
答案 0 :(得分:8)
document.getElementByClassName
不存在,正确的函数为document.getElementsByClassName
(请注意额外的s
)。它返回一个匹配节点数组,因此你要给出一个索引:
addOnloadHook(function () {
document.getElementsByClassName('newTab')[0].getElementsByTagName('a')[0].setAttribute('target', '_blank');
});
答案 1 :(得分:0)
但您可能需要在页面上使用指定的类('newTab')迭代每个范围才能使其正常工作:
addOnLoadHook(function(){
var span = document.getElementsByClassName('newTab');
for(var i in span) {
span[i].getElementsByTagName('a')[0].setAttribute('target','_blank');
}
});
如果你在一个范围内有超过1个锚标记,你也会 必须迭代这样的锚标签:
addOnLoadHook(function(){
var span = document.getElementsByClassName('newTab');
for(var i in span){
var a = span[i].getElementsByTagName('a');
for(var ii in a){
a[ii].setAttribute('target','_blank');
}
}
});