如何使用javascript更改所有链接

时间:2012-11-08 14:46:42

标签: javascript url redirect hyperlink

我想更改我网站的所有链接。假设.Example http://www.google.com/给出的链接更改为http://www.mysite.com/?redirect=http://www.google.com/

我有自己的重定向器,我需要通过javascript更改链接所有网址

4 个答案:

答案 0 :(得分:18)

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

for (var i = 0; i < anchors.length; i++) {
    anchors[i].href = "http://www.mysite.com/?redirect=" + anchors[i].href
}

然后,您可以通过将代码包装到链接到window.onload事件的函数中来使代码在页面加载时运行:

window.onload = function() {
       /* onload code */
}

答案 1 :(得分:2)

如果您在没有框架的情况下使用javascript,则可以使用以下行:

var links, i, le;
links = document.getElementsByTagName('a');
for (i = 0, le = links.length; i < le; i++) {
    links[i].href = "http://www.mysite.com/?redirect=" + encodeURIComponent(links[i].href);
}

答案 2 :(得分:0)

$('a').each(function(i, e)
{
    var current = $(this);

    current.attr('href', 'http://www.mysite.com/?redirect=' + encodeURIComponent(current.attr('href')))
});

答案 3 :(得分:0)

另一个版本,其中包含对本地链接和.forEach()

的一些检查
var links = [].slice.apply(document.getElementsByTagName("a"));
links.forEach(function(link) {
    var href = link.href;

    if (href.length && href.substring(0, 1) !== "#" && href.substring(0, 1) !== "/") {
        link.href = "http://www.mysite.com/?redirect=" + encodeURIComponent(link.href);
        console.log(link.href);
    }
});