簡體   English   中英

HTML5中的自定義標記命名空間實現

[英]Custom tag namespace implementation in HTML5

對於我正在構建的音頻播放器,我希望有一個類似於Google和Facebook用於其共享小部件的標簽。 例如,它可能是:

<fp:player data-type="mp3" data-href="/path/to/file.mp3" />

實現此自定義標記的最佳方法是什么,並使其在盡可能多的瀏覽器中有效?

以上鏈接的規范指出,

用戶代理必須將他們不理解的元素和屬性視為語義中立; 將它們留在DOM中(對於DOM處理器),並根據CSS(對於CSS處理器)對它們進行樣式化,但不會從它們中推斷出任何含義。

如果我正確理解規范,Quentin發布的引用是指用戶代理擴展。 (我認為它們意味着特殊的瀏覽器和瀏覽器插件。) 用戶代理不應該創建新的標簽或屬性。 Web開發人員可以使用他們喜歡的任何組成標簽和屬性。 規范明確指示用戶代理開發人員考慮未知標​​記和屬性,並將它們包含在DOM中以及呈現頁面時。

使用腳本訪問它們變得有點棘手。 IE的7和8為您添加命名空間以查找這些自定義標記,這使您的文檔在技術上無效 - 但仍然完全正常運行!

看到這里(我的博客): http//blog.svidgen.com/2012/10/building-custom-xhtml5-tags.html

HTML規范

對於旨在與HTML語法一起使用的標記級功能,擴展應限於“x-vendor-feature”形式的新屬性,其中vendor是一個短字符串,用於標識負責擴展的供應商和功能是該功能的名稱。 不應創建新元素名稱

因此,您無法創建它並符合規范,Facebook和Google非常非常頑皮。

您似乎試圖重新發明<audio>元素 所以只要使用它,擴展語言的問題就會消失。

觀察html5shim或html5shiv如何創建新元素: https//github.com/aFarkas/html5shiv/blob/master/src/html5shiv.js

基本上你只需要document.createElement()元素,然后你就可以使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM