通过提供用于搜索和遍历DOM的自定义函数,可以在JavaScript中对Shadow DOM W3C草案进行多填充吗?完成了吗?我发现的尝试相当温柔,似乎并没有花太多力气来模仿规格。

我知道这不是一件容易的事,但是肯定有人考虑了吗?

最佳答案

最近几个月,我一直在研究这个确切的问题。

最重要的是,这里有一个polyfill可以在常绿浏览器上工作https://github.com/webcomponents/polyfills/tree/master/packages/webcomponentsjs

^诸如@host之类的CSS功能的polyfill尚不存在,即将推出

因此,是的,要进行polyfill很难,特别是因为我们必须发明二级DOM树。我们试图使其尽可能的易于使用,这需要使用一种侵入性强的包装技术。

换句话说,如果您使用div = document.createElement('div'),则会得到看起来像DIV且像DIV一样工作的东西,但实际上是Wrapper对象。当然,最终的目标是使代码无论是在polyfill下还是在 native 实现下运行都一样。

这不是100%防弹的。特别是我们不可能为您包装document,因此您必须自己做,就像这样:

wrap(document).querySelector(...)

除了document问题之外,包装器还旨在透明地工作。这都是全新的,因此我对缺少文档表示歉意。在我们发言时,我们正在为此努力。

如果您有任何疑问或问题,请file issues,我们很乐意获得反馈。还有一个电子邮件 channel ,网址为Polymer-dev@googlegroups.com,用于讨论该polyfill(以及该组织中的其他polyfill)。



是的,但至少在Chrome中。

10-05 22:49
查看更多