網頁開啟新視窗target=_blank不符合標準_經驗交流
"there is no attribute target for this element(in this HTML version)"
原來在HTML4.01/XHTML1.0/XHTML1.1嚴格DOCTYPE下,target="_blor"、target="_self"等等語法都是無效的,我們只能透過JavaScript來變通實作。
有朋友問為什麼不允許使用target="_blank"?這個屬性很方便啊。呵呵,不知道W3C的專家們是怎麼想的,據我所知,主要是「易用性、友善性」的問題,因為老外覺得不經過用戶同意,沒有明確提示就打開一個新窗口是不禮貌的。先不管這個取消是否合理,我們來看看解決辦法。
rel屬性
HTML4.0增加了一個新屬性:rel,這個屬性用來說明連結和包含此連結頁面的關係,以及連結開啟的目標。 rel有許多的屬性值,像是next、previous、chapter、section等等。我們要使用的就是rel="external"屬性。原來這樣寫的程式碼:
開啟一個新視窗
現在要寫成這樣:開啟一個新視窗
這是符合strict標準的方法。當然也必須配合一個javascript才有效。
javascript
完整的程式碼JS如下:
function externallinks() {
if (!document.getElementsByTagName) return;
var anchors= documentTag. a);
for (var i=0; i
if(anchor.getAttribute(anchor.getAttribute( > anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
winget = "_blank";
}
}
window.Plink>你>window.可以把它存成一個.js檔(例如external.js),然後透過外部聯結方法呼叫:<script></script>
就是這樣。
最後補充一句,我網站採用的target="new"在過渡型DOCTYPE下是允許的,但也不符合strict標準。下次改版時我將採用strict模式,將所有target="new"改成rel="external"。
本文參考了以下文章:
Kevin Yank的《New-Window links in a Standards-Compliant World》
《Standards-based Replacement for 》
2006.7.13更新
很多門戶網站的首頁全部是彈出式的,我估計至少在中國這種觀念暫時還改不了,在這種情況下就不需要在每個鏈接下加rel ,全碼如下:
<script>//<![CDATA[ <BR>function externalLinks() { <BR> if (!document.getElementsByTagName) return; <BR> var anchors = document.getElementsByTagName("a"); <BR> for (var i=0; i<anchors.length; i++){ <BR> var anchor = anchors; <BR> if (anchor.getAttribute("href")) <BR> anchor.target ="_blank"; <BR> } <BR>} <BR>window.onload = externalLinks; <BR>//]]></script>

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

隨著PHP在Web開發中的重要性不斷提高,PHP函數庫設計也成為了開發中的關鍵問題之一。好的函數庫不僅可以提高開發效率,還能確保程式碼的品質和可維護性。因此,設計函數庫需要遵循一些基本原則和標準。一、可重複使用性好的函數庫應該是可重複使用的,可以在不同的項目中使用。因此,函數應該是抽象的、通用的,不能和特定的項目或場景捆綁在一起。二、易用性函數庫應該易於使用,傳遞參數

PHP函數可依多種標準分類:目的(字串處理、陣列處理等)、作用域(內建函數、使用者自訂函數)和傳回值(有傳回值、無回傳值)。實戰案例:explode()函數可將字串以指定分隔符號分割成陣列。

如何判斷黏性定位的標準?揭秘黏性定位的關鍵要素導語:黏性定位作為一種市場定位策略,對企業的品牌推廣和市場競爭起到至關重要的作用。然而,如何判斷黏性定位的標準卻是個令人頭痛的問題。本文將揭秘黏性定位的關鍵要素,幫助企業更能判斷黏性定位的標準。一、認清黏性定位的意義黏性定位是指企業透過獨特的品牌特性和核心競爭優勢,使消費者產生強烈的認同與忠誠度,從而形成一種

黏性定位的標準是指在市場競爭中,一個企業或品牌能夠長期佔據消費者心智中的固定位置,並且能夠穩定地維持市場份額和品牌忠誠度的能力。黏性定位是行銷的重要概念,它強調在激烈競爭的市場環境中,企業需要建立自己獨特的定位,並與消費者建立緊密的關係,以保持競爭優勢。黏性定位的核心要求包括以下幾個面向:獨特性:一個企業或品牌在市場上的定位必須是獨特且與競爭對手有所

最近,關於生成式人工智慧工具的討論越來越多,特別是在多個大型語言模型和圖像生成器(如DALL-E或Midjourney)發布之後。這些發明再次將通用人工智慧(GPAI)置於人們的關注的目光下,並再次提出了諸如GPAI是否應該受到監管等假設性問題。在人們進一步探索可能性之前,先了解GPAI的概念,它的意義,它是什麼時候引入的等等。什麼是通用人工智慧?兩年前,也就是2021年4月,歐盟委員會推出了通用人工智慧。最初的人工智慧法案提案免除了通用人工智慧創建者遵守一些法律文件和其他責任標準的責任。原因

在Web開發中,PHP是一種廣泛應用的程式語言,它的標準標記是PHP程式碼中的特殊標記符號,用來識別PHP程式碼的開始和結束。深入了解PHP的標準標記是非常重要的,因為它們直接影響PHP程式碼的解析和執行過程。本文將深入探討PHP的標準標記,並提供具體的程式碼範例,幫助讀者更能理解並運用PHP程式設計。一、PHP的標準標記在PHP中,最常用的標準標記是「

標題:Go語言是否符合上層語言的標準?近年來,Go語言作為一種新興的程式語言受到了廣泛關注和應用。作為一種靜態類型、編譯型的語言,Go語言在並發程式設計、記憶體管理和程式碼可讀性方面具有獨特的優勢,但在一些程式設計師眼中,它並不完全符合上層語言所應該具備的標準。本文將從幾個面向探討Go語言是否符合上層語言的標準,並結合具體的程式碼範例展開討論。一、程式碼簡潔性上層語言通常被

黏性定位是一種常見的網頁佈局技術,透過使元素在滾動時保持固定位置,提供更好的使用者體驗。本文將解析黏性定位的標準、要素和要求,並提供具體程式碼範例。一、黏性定位的標準相容性:黏性定位應在主流瀏覽器上正常運作,如Chrome、Firefox、Safari等。滾動效果:元素在滾動時應平滑過渡,避免閃爍或抖動的情況。響應式設計:黏性定位應適應不同裝置和螢幕大小,確
