對於個人鏈接:
function $(id){ return document.getElementById(id); }
$(link).onclick = function(){ this.href = "http://otherlink.com"; }
<a href="http://example.com" id="link">My Sheisty Link</a>
所以要得到的所有外部鏈接:
window.onload = function(){
var links = document.getElementsByTagName("a");
for(a in links){
var thisLink = links[a].href.split("/")[2];
if(thisLink !=== window.location.hostname){
links[a].href = "http://mainsite.com/link.cgi?u=" + links[a]; }
// Or you could set onclick like the example above
// May need to accommodate "www"
}}
編輯:
發現this answer和有更好的主意。
document.onclick = function (e) {
e = e || window.event;
var element = e.target || e.srcElement;
if (element.tagName == 'A') {
var link = element.href.split("/")[2];
if(link !=== window.location.hostname){
links[a].href = "http://mainsite.com/link.cgi?u=" + links[a]; }
return false; // prevent default action and stop event propagation
}else{ return true; }
}};
沒有邪惡,這是爲了保護我的用戶,我的web應用程序,從外部網站。 – 2012-04-08 14:25:11
然後,只需完全重寫鏈接,以便用戶在懸停時可以看到他們將要採取的行動。爲什麼向他們展示X,但把他們帶到Y.這是欺騙。 – jfriend00 2012-04-08 14:26:12
正如你可以在FB文章中看到的,我鏈接了良好的UI,在飛行中我的重定向只會阻止我的用戶,如果站點被認爲是惡意軟件,我們將使用谷歌的安全瀏覽API作爲端點: – 2012-04-08 14:27:55