2017-08-06 81 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