Web组件在IE11和Edge中实际可用吗?

mcv*_*mcv 17 web-component polyfills internet-explorer-11 custom-element

Web组件是热门的新事物,也是一个真正的Web标准,每个人都在谈论它们并且可能使用它们,它们似乎是我们遇到的问题的完美解决方案(在不同的站点之间共享组件).

所以我们构建了几个Web组件.Chrome中的工作正常,但IE11中没有.使用polyfill可能吗?https://www.webcomponents.org/polyfills有大量的polyfills,但IE11一直在抱怨class.

也许编译成ES5?各种来源声称Web组件需要ES6,因为您在IE11中没有从HTMLElement获得相同类型的继承.有自定义元素-es5-adapter.js,但不知何故它不起作用.如果我编译下来,webcomponents不起作用.如果我不这样做,IE11就会失败class.

但是每个人都在使用网络组件.你怎么做呢?你根本不支持IE11/Edge吗?难道我做错了什么?

Int*_*lia 8

如果您想要的只是“自定义元素”,则可以使它们与IE11和Edge一起使用。Shadow DOM和HTML导入也可以与IE11和Edge一起使用,但是我个人不喜欢使用Shadow DOM,除非在本机支持它的浏览器上。

Firefox和Edge仅可与常规polyfill一起使用。

IE11需要转换为ES5并使用polyfill。

如果您在支持class此功能的新型浏览器上使用ES5转换代码,则需要使用该文件custom-elements-es5-adapter.js

有人使用webcomponents-lite.js它将自动加载所需的polyfill文件。其他人则加载特定的polyfill,例如webcomponents-hi-ce.js(HTML导入和自定义元素)或webcomponents-sd-ce.js(阴影DOM和自定义元素)

https://github.com/WebComponents/webcomponentsjs

  • 据我了解,custom-elements-es5-adapter.js仅适用于新浏览器,不应加载到IE11中。如果我想为所有浏览器提供相同的文件,这种方法似乎行不通,因此我改用了document-register-element.js,它应该可以立即使用,但不包括对影子dom的支持。 。我正在尝试将其与shadydom.js结合使用,但这似乎不起作用。 (2认同)