javascript - createShadowRoot 与 attachShadow

标签 javascript polymer shadow-dom

mozilla 开发人员文档说 createShadowRoot 已弃用,取而代之的是 attachShadow here虽然附加影子的链接转到 404。W3C 草案还指出正确的方法是 attachShadowhere . W3C 问题列表再次建议另一种创建和附加影子根的方法以实现可重用性并使主机可变,对 here .

我只是很困惑。我应该选择它,我应该放弃它,还是应该选择像 Polyfill 和 Polymer 这样的第三方;尽管后者实际上使用了一个名为 Shady DOM 的东西,它只是从(不仅不同,而且)完全相反的 Angular 来看待 Shadow DOM 解决的问题。

如果可以讨论最终标准过渡时间的实用解决方案,我们将不胜感激。

最佳答案

如果您使用 Polymer,则无需费心。 Polymer 提供了它自己的 API,并 polyfills 浏览器差异。
如果您不想使用 Polymer,您仍然可以使用 web_components polyfill 并从浏览器抽象中获益。

Shady DOM 是一种 polyfill,它针对性能而不是完美的浏览器抽象进行了优化。您必须使用 Polymers API 进行 DOM 操作,以主动启用 Polymer 来完成额外的工作。

您可以启用完整的 Shadow DOM(有关详细信息,请参阅 https://www.polymer-project.org/1.0/docs/devguide/settings.html)。这在没有 native 影子 DOM 支持的浏览器(尤其是 Safari 移动版)上可能会更慢,但它是一个“近乎完美”的 polyfill,您甚至不需要使用 Polymers API,因为“普通”API 已由 polyfill 修补。

关于javascript - createShadowRoot 与 attachShadow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35167379/

相关文章:

javascript - WHILE 循环内的 GM_xmlhttpRequest

javascript - 如何将此函数放入 angularjs 中的指令中

css - 是否可以使用外部 css 文件设置 Polymer 的自定义元素的样式

javascript - Polymer 和使用外部 JavaScript 库

python - 如何使用 Selenium 和 Python 在网站 https ://www. virustotal.com 中找到 shadow-root(打开)中的名字字段

Angular:为什么我应该使用 'encapsulation: ViewEncapsulation.Native' ?

javascript - 引用错误: Can't find variable: $controller

javascript - 在页面上拖放文件时如何设置文件输入值?

javascript - 互联网浏览器 : issue with dynamically setting polymer paper-tooltip innerHTML

javascript - 是否可以从另一个元素访问元素函数? polymer 1.0