-1

私が達成しようとしているのは、ページがロードされたときにすべての外部リンクを置き換えることです。

例として、元のURL:

http://microsoft.com/faq become newurl

次のように変更する必要があります:

http://redirect.com/?url=http://microsoft.com/faq 

Googleで見つけたさまざまな解決策を試しましたが、何もうまくいかないようです。

私はここで解決策を見つけたと思います:http://jsfiddle.net/eK7XW/

4

1 に答える 1

2

Edited to check internal domain:

function isExternal(link, domain) {
    var re = /http(s?):\/\/([\w]+\.){1}([\w]+\.?)+/;
    return re.exec(link)[0] === domain;
}

var SITE = "http://redirect.com/?url=";
var INTERNAL_DOMAIN = "http://www.yourdomain.com";
var links = document.getElementsByTagName("a");
for (var i=0; i<links.length; i++) {
    if (isExternal(links[i].href), INTERNAL_DOMAIN) {
        links[i].href = SITE + links[i].href;
    }
}

If you need to check for subdomains or to not specify the internal domain, I believe the code is easy to adapt.

于 2013-03-19T16:18:59.453 に答える