javascript - IE 和 Firefox 上的 Webcomponents.js 问题

标签 javascript web-component shadow-dom polyfills

我尝试制作一个简单的网络组件。

为了浏览器兼容性,我使用 NPM 包 webcomponents.js(版本 0.7.23)。我使用 Polyserve 运行我的小代码。

我的代码在 Github 上:https://github.com/olofweb/Webcomponents

  • 在 Chrome(版本 55)上 -> 好的
  • 在 IE(版本 11)上 -> ko
  • 在 Firefox(版本 50.1)上 -> ko

错误:

https://github.com/olofweb/Webcomponents/blob/master/hello-world.html#L31

IE 11(抱歉,我没有英文错误): “对象不属于属性或方法“createShadowRoot””

火狐 50.1: “类型错误:this.createShadowRoot 不是一个函数”

最佳答案

在主文件 index.html 中,您将加载 webcomponents-lite.js 脚本,该脚本不包含 Shadow DOM polyfill。

相反,尝试加载webcomponents.js

<小时/>

对于 Shadow DOM v1 attachShadow(),您应该使用 ShadyDOM polyfill 。在这种情况下,您应该使用 webcomponents-lite.js 否则会与 createShadowRoot() polyfill 发生冲突。

<script src="./node_modules/webcomponents.js/webcomponents-lite.js"></script>
<script src="shadydom.min.js"></script>
<script>
if (!Array.from) {
    Array.from = function (object) {
        'use strict';
        return [].slice.call(object);
    };
}
</script>

关于javascript - IE 和 Firefox 上的 Webcomponents.js 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41697490/

相关文章:

Javascript/PHP 重定向

css - Shadow DOM 插槽内的继承

css - 使用 Polymer 1.0 Shady DOM 时影响本地 DOM 的文档样式

typescript - Rust WebAssembly 自定义元素内存释放错误

javascript - 为什么我可以调用影子 dom 中的函数?

javascript - 在Anguar5中使用Renderer2时如何使用[(ng-model)]

javascript - ES6箭头函数TypeError : Cannot read property '1' of null with multiple params using Karma

javascript - 读取javascript文件并执行代码

css - 外部样式不会覆盖 Shadow DOM 样式

html - 将 Google 字体与 Shadow DOM 结合使用