Javascript Element.createShadowRoot()的替代方案是什么?
我正在使用这段代码:Javascript Element.createShadowRoot()的替代方案是什么?,javascript,css,web-component,shadow-dom,Javascript,Css,Web Component,Shadow Dom,我正在使用这段代码: function setShadowDOM(i, css){ [].forEach.call(document.getElementsByTagName(i), function(hostVal) { var _root = hostVal.createShadowRoot(); _root.innerHTML = '<style>:host ' + css + '</style><content
function setShadowDOM(i, css){
[].forEach.call(document.getElementsByTagName(i), function(hostVal) {
var _root = hostVal.createShadowRoot();
_root.innerHTML = '<style>:host ' + css + '</style><content></content>';
})
}
函数setShadowDOM(i,css){
[]forEach.call(document.getElementsByTagName(i),函数(hostVal){
var_root=hostVal.createShadowRoot();
_root.innerHTML=':主机'+css+'';
})
}
我也是
如何解决这个问题?替代方案是什么?告诉您使用。。。但该功能本身被标记为非标准,目前任何浏览器都完全不支持该功能:
除非有一个标准能够提供良好的浏览器支持,否则如果您想使用web组件,最好使用(作为浏览器)或(有自己的API)
由于甚至不支持attachShadow
,您目前的选择是:
- 在不受支持的浏览器中继续使用并使用此功能
- 将web组件移植到(这意味着您应该使用Polymer的API)
许多人喜欢这样做,正是因为它有自己的API。如果您使用,您的代码更有可能是未来的证明,因为确切的web组件实现是在幕后进行的,对该实现的任何更改都不太可能影响Polymer自己的API。现在您可以使用
attachShadow()
而不是createShadowRoot()
:
- 它在Chrome(53+)、Opera(40+)、Safari(10+)和Firefox(63+)中使用
- webcomponents.js团队还提供了一个a:
Edge将很快采用Chromium引擎,然后它将与Shadow DOM v1兼容。来自
mdn
:此方法已被弃用,取而代之的是attachShadow。
,此问题将有助于: