2017-08-06 80 views
3

我閱讀有關的技術,其中您可以創建自定義的HTML標籤,就像這樣:創建自定義HTML標籤是否安全?

<!-- REGISTER CUSTOM ELEMENTS --> 
<script type="text/javascript"> 
    var ApplicationContainer = document.registerElement('application-container'); 
    document.body.appendChild(new ApplicationContainer()); 
</script> 

由於有多種瀏覽器的&瀏覽器的版本在那裏,我想知道:

  • 是否可以安全地創建自定義標籤?
  • 如果不是,那麼正確的解決方法是什麼?

......我只是好奇,真的。

+2

也許你正在試圖解決的[XY問題(http://xyproblem.info/)? –

+0

我熟悉的自定義HTML標籤的唯一應用是通過像Angular這樣的框架,它允許你「註冊」自定義指令來封裝DOM操作,所以有效地,你「創建」了新的元素,但它們只是簡單的擴展功能基於HTML元素的核心集合,而不是「全新」元素本身。 –

+0

我不想解決任何問題。我剛剛閱讀了這篇文章,並認爲......「不能安全。」我甚至在問題的第一行中這樣說......並以「只是好奇」結尾 –

回答

1

@ PrisonerZER0我不會稱「Olde瀏覽器」這個詞爲「安全」。有點矛盾。即使M $也把IE放在棺材裏。 https://www.microsoft.com/en-us/windowsforbusiness/end-of-ie-support

我們支持他們只是要求麻煩。感謝您的留言。

我創建了snuggsi ツ(https://github.com/devpunks/snuggsi)庫作爲Web組件/自定義元素原生瀏覽器規範的一套約定。我的理念是你不需要知道節點,webpack,babel等。只需要知道基本的HTML,CSS,JS在2017年就會有生產力。以下片段就是一個很好的例子。

隨意接觸github,因爲它看起來像你要用現代化平臺開發。我們不需要這些令人費解的前端工具,我們可以隨時與github聯繫,以便我可以幫助您開始使用!

<hello-world> 
 
Hello {planet} 
 
</hello-world> 
 

 
<!-- more info @ https://github.com/devpunks/snuggsi --> 
 
<script src=//unpkg.com/snuggsi></script> 
 
<script> 
 

 
// Element Definition ----------------------------- 
 

 
Element `hello-world` 
 

 
// Class Description ------------------------------ 
 

 
(class extends HTMLElement { 
 

 
    get planet() 
 
    // "automagic" token binding 
 
    { return 'world ' } 
 

 
    onclick() 
 
    // "automagic" event registration 
 
    { alert (this) } 
 
}) 
 

 
</script>

+0

尼斯...我一定會看看它 –

2

不,這是不推薦,除非你有某種polyfill。它在大多數瀏覽器中不受支持,請參閱caniuse

有一些已知的polyfills,但他們確實有挫折。 WebComponents Repository

2

我不會推薦。你應該能夠使用現有的HTML標籤來實現你需要的任何東西。你需要再次考慮你的要求。你需要一個新的HTML標籤來使它與現有的標籤有區別嗎?如果是的話,你總是可以使用數據屬性來區分它。但如果你基本上需要創建一個自定義標籤,Google developers有一個非常有趣的演習。希望我的回答有幫助。

2

根據snuggsi

Web組件ready for production

& Custom Elements v1具有完全support for every modern browser including Internet Explorer 11+/Edge

它不是立即清楚你所說的 「安全」 的意思,因爲這是一個相當廣義和無限期的。

+0

通過「安全」我的意思是奧爾德瀏覽器 –

+0

其實完全相反@PrisonerZERO。這將在2017年100%不安全並繼續前進。即使是微軟也有記錄,說明你是否還支持任何<你已經用腳機槍扳動扳機的東西。我已經在README的瀏覽器支持部分詳細記錄了這一點https://github.com/devpunks/snuggsi#browser-support – Snuggs