代码拉取完成,页面将自动刷新
本项目适用于支持匿名自定义元素,但是不支持内置自定义元素的浏览器场景,主要就是Safari浏览器。
核心代码源自:https://github.com/WebReflection/custom-elements-builtin 这个项目。
不过源项目代码并没有做浏览器区分,也是Chrome浏览器引入也会执行,这就会影响Chrome浏览器下的正常运行。
所以我就基于内置自定义元素独有的特性进行了目标浏览器的识别与区分,这样就算引入,也不会影响Chrome浏览器。
直接引用项目中的 index.js 即可。
本polyfill虽然可以让Safari浏览器支持内置自定义语法,但是和原生浏览器还是有区别的,主要区别在于组件的声明周期运行的时机上。
原生支持的浏览器,例如Chrome或者Firefox浏览器,组件初始化以及connectedCallback生命周期执行的时间更早,Safari浏览器滞后。
这就有可能导致,Chrome浏览器下完全OK的功能代码,在Safari浏览器下就会报错。
因此,此时,Safari浏览器下,目标元素还是普通元素,Chrome浏览器已经是内置自定义元素了。
想要解决这个问题,可以在组件编写的时候,预留依赖成功初始化的回调,保证功能代码执行的时候,目标元素已经是内置自定义元素了。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。