更改页面上的所有链接
我想更改页面上的所有链接,它适用于没有类的链接,但不适用于具有类的链接。更改页面上的所有链接
这是我使用的代码:
window.onload = function() {
/* onload code */
var anchors = document.getElementsByTagName("a");
for (var i = 0; i < anchors.length; i++) {
anchors[i].href = "http://www.example.com/?redirect=" + anchors[i].href
}
}
它适用于链接,如:
<a id="box-left" href="http://www.google.com"></a>
但是,这并不工作:
<a class="links" href="redirect.php?link=125411" onclick="launch();" target="_blank"></a>
我想那正确的功能应该是:
的var anchors = document.getElementsByTagName("class");
window.onload = function() {
/* onload code */
var anchors = document.getElementsByTagName("a");
for (var i = 0; i < anchors.length; i++) {
anchors[i].href = "http://www.mysite.com/?redirect=" + anchors[i].href
}
}
你好,对不起有一个错字,是的,我使用“a”而不是“class”,但它仍然不会改变使用class的链接。 – user1938320 2013-04-08 17:10:35
使用
var anchors = document.getElementsByTagName('a');
,而不是顺便说一句,我建议你使用jQuery选择DOM元素。
你好,对不起,有一个错字,是的,我使用“a”而不是“类”,但它仍然不会改变使用类的链接。 – user1938320 2013-04-08 17:11:05
在我的下一个回答中找到我的建议 – speedingdeer 2013-04-08 17:17:10
我测试了它发布的代码,它为我工作。
我把javascript放在标签和正文中的链接中。
也许页面上还有其他内容会干扰。
难道是我想要更改链接的页面在iframe中吗? – user1938320 2013-04-08 17:18:29
我认为CSS可以像我上面所写的那样混合一些东西。 JS也适合我 – speedingdeer 2013-04-08 17:20:33
我不确定iFrame。您可以随时检查JavaScript是否被触发,方法是在函数的开始处添加alert(),并检查它是否在最后通过另一个警报完成。 – RacerNerd 2013-04-08 17:21:26
也许你有一些奇怪的CSS whick混合这个链接与这个类=“links”属性?您也可以尝试将类添加到这两种链接并按类选择。
var anchors = document.getElementsByClassName("dynamic_links");
<a id="box-left" class="dynamic_links" href="http://www.google.com"></a>
<a class="links dynamic_links" href="redirect.php?link=125411" onclick="launch();" target="_blank"></a>
让我知道这件事怎么样?
如果您正在使用jQuery,它像这样简单:
$('a').attr("href", "http://www.google.com/")
尝试使用第一锚[I] .removeAttribute( “HREF”);然后设置它。 而不是window.onload使用document.onload可以被触发。 如果您将代码提供给jsfiddle或jsbin,会更好。 – Givi 2013-04-08 17:13:30