Javascript 如何检测浏览器是否支持自定义元素

Javascript 如何检测浏览器是否支持自定义元素,javascript,html,modernizr,Javascript,Html,Modernizr,我在看Modernizer,它应该有助于功能检测,这应该是确定您的网站是否与给定的web浏览器兼容的关键,但我没有看到任何迹象表明我可以使用它来检测我们在内容中创建和定义的自定义HTML元素 如果不是Modernizer,如何可靠地检测浏览器是否能够以“HTML5”的方式处理自定义HTML元素 Modernizr目前还没有对此进行测试,但是因为它有一个API来创建元素,所以应该尽可能简单 var supportsCustomElements = ('registerElement' in doc

我在看Modernizer,它应该有助于功能检测,这应该是确定您的网站是否与给定的web浏览器兼容的关键,但我没有看到任何迹象表明我可以使用它来检测我们在内容中创建和定义的自定义HTML元素


如果不是Modernizer,如何可靠地检测浏览器是否能够以“HTML5”的方式处理自定义HTML元素

Modernizr目前还没有对此进行测试,但是因为它有一个API来创建元素,所以应该尽可能简单

var supportsCustomElements = ('registerElement' in document)
检测API的v0。要检查更为最新的v1,其

var supportsCustomElements = ('customElements' in window)

()

旧线程,但只想说Modernizer现在支持它。

你真的不必这么做。如果您包含使旧版本IE正常工作的代码,那么您的非标准元素将在所有现代浏览器上工作。无论如何,这样做是一个值得怀疑的做法。让我澄清一下——目的是不支持旧版本,并通知用户他们需要升级浏览器。我们无意支持较旧的浏览器。我不知道你会怎么检查;当遇到未知标记时,在不同的旧浏览器中可能会发生不同的事情。只是澄清一下-由于registerElement是HTML5的事情,实际上我不需要使用Modernizer来测试您提供的代码,对吗?完全正确!实际上,运行我使用的东西不需要任何东西,它可以在任何javascript引擎中运行。我在操作员的
中更新了答案以获取更多信息。太棒了!然而,它似乎不是正确的解决方案,因为IE9+没有在文档上定义registerElement,即使它确实按照预期呈现自定义元素。真奇怪。现在,我有一个解决办法——我在xtag中使用
“register”,并使用Mozilla的x-tag库,它确实给出了正确的答案(到目前为止)。也许我们会找到更好的解决方案?你是说自定义标记还是自定义元素?IE9ElementSAH中肯定不支持自定义元素(),我没有意识到自定义标记和自定义元素之间有区别。现在我不确定我想要的是不是真正的标签,所以让我们详细说明一下——我想做的就是能够做到
——我并不真正需要x-tag库(或聚合物库)提供的东西,因为它们在注册自定义元素时添加了生命周期事件,而我目前不需要这些自定义元素。当我测试时,我发现它适用于IE9+和其他。奇怪的是,Mozilla的x标签库声称它可以在IE9+上工作。我想他们对自定义元素进行多边形填充?