我知道這是一個常見的要求,並且在野外有很多答案。如果有人能夠在新窗口中提供一個僅從HTML文件打開外部鏈接的正確腳本,我將不勝感激。如何通過JavaScript在新瀏覽器窗口中僅打開外部鏈接?
0
A
回答
4
您可以使用jQuery這個:
$(document).ready(function(){
$("a[href^='http']:not([href*='"+location.hostname+"'])").attr("target","_blank");
});
它應與HTTP和HTTPS鏈接。
1
具體代碼將決定您是否使用純DOM腳本或任何Javascript框架。但一般來說,這是你要做的:
設置所有錨的onclick回調。
在您的回調中,檢查鏈接的
href
屬性是否轉到外部站點。您可以使用多種方式來執行此操作,但最簡單的方法可能是在URL上使用簡單的正則表達式。如果不是外部的,則允許鏈接正常進行(即返回true等)。
如果是外部的,在新窗口中打開,然後返回false。
打開Javascript中一個新的窗口很簡單:
window.open('http://www.google.com');
2
我在自己的網站上使用了一點JavaScript。然後,我有一個風格的設置修改鏈接(它增加了一個小圖像/全球範圍內,隱約MSDN等。製作的鏈接打開新頁面也將通過修改目標屬性是微不足道的。
if (document.links) {
for (var i = 0; i < document.links.length; i++) {
l = document.links[i].href;
if (l.indexOf('http://www.mysite.com')!=0 &&
l.indexOf('http://udv.mysite.com')!=0 &&
l.indexOf('http://')==0) {
c = document.links[i];
if (c.className == "dontModify") continue;
c.className = c.className + " external";
if (c.title != "") {
c.title = "External link: " + c.title;
}
}
}
}
你這是什麼意思是由外部? – Gumbo 2009-05-30 20:28:57
對不完整的信息。我的意思是,如果我的網站是www.mysite.com,任何標記,其中有一些其他域然而mysite的href是外部對我來說 – theraneman 2009-05-30 20:30:40