Shadow DOM可以在多大程度上使用polyfill进行模拟?

Pat*_*ers 20 javascript dom4 shadow-dom toolkitchen

Shadow DOM W3C草案是否可以通过提供用于搜索和遍历DOM的自定义函数在JavaScript中进行填充?这已经完成了吗?我发现的尝试是相当温顺的垫片,并且似乎没有花费太多努力来模仿规范.

我很欣赏这不是一件容易的事,但是有人给了它一个彻底的考虑?

Sco*_*les 27

在过去的几个月里,我一直在研究这个问题.

底线有一个polyfill,可以在常绿浏览器上运行^ https://github.com/Polymer/ShadowDOM

^像@host这样的CSS功能的填充不在那里,即将推出

所以,是的,polyfill很难,特别是因为我们必须发明二级DOM树.我们试图使其尽可能方便用户,这需要使用相当有创的包装技术.

换句话说,如果你div = document.createElement('div'),你得到的东西看起来像DIV并且像DIV一样工作,但实际上是一个Wrapper对象.当然,最终的目标是让您的代码看起来相同,无论它是在polyfill下运行还是在本机实现下运行.

这不是100%防弹,特别是我们不可能document为你包装,所以你必须自己做,一个la:

wrap(document).querySelector(...)
Run Code Online (Sandbox Code Playgroud)

除了这个document问题,包装器的目的是透明地工作.这都是全新的,所以我为缺乏文档而道歉.我们正在谈论这个问题.

提交问题,如果您有任何疑问或问题,我们的爱得到的反馈.还有一个电子邮件渠道,用于在polymer-dev@googlegroups.com上讨论此polyfill(以及该组织中的其他polyfill).

我怀疑这个东西是广泛实施的

没错,但至少在Chrome中.