影子DOM W3C草案可以在JavaScript中通过提供搜索和遍历DOM的自定义函数来填充吗?这样做了吗?我所发现的尝试都是相当温和的垫片,似乎没有做出太多努力来模仿规格。
我知道这不是一件容易的事,但肯定有人已经考虑过了吧?
过去几个月我一直在研究这个问题。
底线是有一个在常绿浏览器上工作的填充https://github.com/webcomponents/polyfills/tree/master/packages/webcomponentsjs
^像@host这样的CSS特性的填充还没有在那里,很快就会到来
所以,是的,这是一件很难的事情,特别是因为我们必须发明二级DOM树。我们试图使它尽可能地用户友好,这需要使用一种相当侵入性的包装技术。
换句话说,如果您使用div = document.createElement('div')
,您将得到一个看起来像DIV并像DIV一样工作的东西,但实际上是一个Wrapper对象。当然,最终的目标是让你的代码看起来是一样的,无论它是在polyfill下运行还是在本机实现下运行。
它不是100%防弹的。特别是,我们不可能为你包装document
,所以你必须自己做,有点像这样:
wrap(document).querySelector(...)
除了document
问题,包装器的目的是透明地工作。这些都是全新的,所以我很抱歉缺少医生。我们正在努力解决这个问题。
如果您有疑问或问题,请提交问题,我们喜欢得到反馈。还有一个电子邮件通道用于讨论这个填充(以及该组织中的其他填充):polymer-dev@googlegroups.com。
我怀疑这个东西是否被广泛实现