【发布时间】:2018-03-27 08:44:35
【问题描述】:
我很清楚 自定义元素 功能可以通过在配置中将 dom.webcomponents.enabled 和 dom.webcomponents.customelements.enabled 设置为 true 来手动启用(至少在 Firefox 中),但是任何人都可以帮助我解释为什么几乎所有文档(w3、mozilla 等)都鼓励使用自定义元素,但似乎只有 Chrome 正确支持此功能。
最近我一直在使用这个 polyfill 来让 customElements 在其他浏览器上工作:
defineElement = function( tag, opt ){
if( typeof customElements !== 'undefined' ){
customElements.define( tag, opt );
} else {
document.registerElement( tag, opt );
}
}
class HTMLxSearchElement extends HTMLElement{
constructor(){
super();
console.log('super');
}
}
defineElement( 'x-search', HTMLxSearchElement )
但现在document.registerElement 功能也被删除了!有没有人有任何替代方法来恢复和运行此功能?
【问题讨论】:
-
“为什么在几乎所有文档中都鼓励使用自定义元素”——我完全没有这种印象。
-
您在哪个浏览器和哪个版本上进行测试,
document.registerElement被删除了吗? -
@DhruvMurarka 目前在最新的 Firefox Quantum v59.0.1 和 Edge 41.16299.248.0 中进行测试。他们似乎都缺乏这个功能。
-
@Supersharp 你说得对。我只是注意到有关
registerElement的任何文档中完全缺少他们的信息。它仍然没有解释为什么 Firefox 删除了registerElement功能并将customElements设置为新标准,而它必须手动开启。
标签: javascript html custom-element