创建自定义HTML标签是否安全?

时间:2017-08-06 13:01:40

标签: javascript html

我正在阅读一种技术,您可以在其中创建自定义HTML标记,如下所示:

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

鉴于有各种各样的浏览器和那里的浏览器版本,我想知道:

  • 创建自定义标签是否安全?
  • 如果没有,那么适当的解决方法是什么?

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

4 个答案:

答案 0 :(得分:2)

除非您有某种填充剂,否则不推荐这样做。大多数浏览器都不支持此功能,请参阅caniuse

有一些已知的polyfills,但他们确实有他们的挫折。 WebComponents Repository

答案 1 :(得分:2)

我不建议这样做。您应该能够使用现有的HTML标记实现您需要的任何内容。你需要再次考虑你的要求。你需要一个新的HTML标签,使其与现有标签不同吗?如果是,您可以始终使用数据属性将其与其他属性区分开来。但如果你基本上需要创建一个自定义标签,Google developers有一个非常有趣的步骤。希望我的回答有所帮助。

答案 2 :(得分:2)

根据snuggsi

  

网络组件ready for production

     

&安培; Custom Elements v1已完整support for every modern browser including Internet Explorer 11+ / Edge

由于这是一个相当广泛和无限期的术语,因此并不能立即明确你的意思。&#34;安全&#34;

答案 3 :(得分:1)

@ PrisonerZER0我不打电话给#34; Olde browser&#34;这个词&#34;安全&#34;。有点矛盾。甚至M $已将IE放入棺材中。 https://www.microsoft.com/en-us/windowsforbusiness/end-of-ie-support

我们支持他们只是在寻找麻烦。谢谢你的呼喊。

我创建了snuggsi ツ (https://github.com/devpunks/snuggsi)库,作为Web组件/自定义元素本机浏览器规范的一套约定。我的理念是你不应该知道节点,webpack,babel等。只需要知道2017年基本的HTML,CSS,JS就可以了。下面的代码片段就是一个完美的例子。

随意与github联系,因为您似乎可以使用现代平台开发。我们不需要这些复杂的前端工具我们可以随时联系github,这样我就可以帮助您开始使用了!

&#13;
&#13;
<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>
&#13;
&#13;
&#13;