12

自分のサイトのすべてのリンクを変更したい。.Examplehttp://www.google.com/によって与えられたリンクがhttp://www.mysite.com/?redirect=http://www.google.com/に変更されたとします。

私は自分のリダイレクタを持っていますが、すべてのURLのJavaScriptを介してリンクを変更する必要があります

4

4 に答える 4

30
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 */
}
于 2012-11-08T14:59:24.150 に答える
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);
}
于 2012-11-08T15:04:32.153 に答える
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);
    }
});
于 2012-11-08T15:08:15.060 に答える
0
$('a').each(function(i, e)
{
    var current = $(this);

    current.attr('href', 'http://www.mysite.com/?redirect=' + encodeURIComponent(current.attr('href')))
});
于 2012-11-08T14:58:14.593 に答える