讓網頁的「外部超連結」自動開啟在新視窗
在編輯網頁時,如果要讓某個超連結(Link)開啟在新的瀏覽器視窗,我們可以在超連結加上 href=”_blank” 屬性,但如果超連結很多,要一個一個加上去畢竟麻煩,尤其是像 Blogger 這樣的線上編輯介面,以下的程式碼可以幫你把網頁內所有針對 “外部” 的超連結自動設為在新視窗開啟。
安裝步驟
- 將下列程式碼加到網頁的 <head> 區段:
<script> function parseLink(){ var tagA = document.getElementsByTagName('a'); re=new RegExp("^(http://"+document.domain+")|(javascript:)","i"); for(var i=0; i<tagA.length; i++){ if(!tagA[i].href.match(re)){tagA[i].target='_blank'}; } } </script> - 在 <body> 標籤內的 onload 事件加入:
parseLink();
8 Responses
to “讓網頁的「外部超連結」自動開啟在新視窗”
1 Trackback(s)
- 四月 22, 2009: 如何讓網頁裡的連結自動在新視窗開啟 | 冷光
用BASE就可以啦
http://www.w3schools.com/tags/tag_base.asp
Base Tag 是讓 "所有的" 超連結都開啟在新視窗,上面的程式是讓 "本站以外" 的超連結自動開啟在新視窗,站內的超連結還是開啟在原視窗。
你好
請問一下
第二段的parseLink();
是要加在ONLOAD的哪邊呢? 不好意思我試了很久不行才來詢問的…
感謝
下面是我BLOG的程式碼
——————————————————————————————–
google.annotations.createAll();
google.annotations.fetch();
}
google.setOnLoadCallback(initialize);
———————————————————————————————
To 阿丹:
找找看樣板裡有沒有 "<body>" 這標籤,改成:
<body onload="parseLink()">
你好,我想請問一下,function的程式碼中有需要修改的地方嗎?
因為我照著修改還是會在原本的頁面開啟連結,還是說是因為我的網頁是導入的頁面,所以不可以用此方法呢?
我們無法剖析您的範本,因為它的結構不完整。 請確定所有的 XML 元素均已正確關閉。
XML 錯誤訊息: Element type "tagA.length" must be followed by either attribute specifications, ">" or "/>".
好像是判讀小於的問題…奇怪…
找到解答了 用字符i<代替<