google-chrome - Chrome 67 破坏了我的 WebComponent
问题描述
出于某种奇怪的原因,从 Chrome 66 到 Chrome 67 的更新破坏了我的 Web 应用程序的 WebComponents。
顶部的地图是通过 WebComponent 自定义元素定义的。应该注意的是,它不是通过影子 DOM 呈现的。它是通过将子项附加<img>
到我的地图组件来直接呈现的。
Chrome 66 的 DOM:
<bj-map ...>
<img src="...">
</bj-map>
Chrome 67 的 DOM:
<bj-map ...></bj-map>
组件的类是Map
,扩展自HTMLElement
。不相关的方法已被删除。
class Map extends HTMLElement {
connectedCallback () {
this.render()
}
render () {
const src = this.getMapSource()
this.innerHTML = `
<img src="${src}"></img>
`
}
}
customElements.define('bj-map', Map, { extends: 'div' })
export default Map
有什么方法可以尝试调试这个神奇的问题吗?
解决方案
{ extends: 'div' }
从中删除customElements.define('bj-map', Map, { extends: 'div' })
。
class Map extends HTMLElement
未扩展,HTMLDivElement
因此您无需在define
.
扩展原生 HTML 元素有更多细节。
推荐阅读
- asp.net - Word VBA / 宏在服务器 Application.Run、ASP.NET、DCOM 上运行
- flask - Flask-PyMongo 查询数据库
- python - 从两种不同的方法计算召回率和准确率的不同结果
- node.js - 如何使用 GraphQL 在嵌套对象上创建突变?
- javascript - 为什么javascript中的这个循环函数不是每次都返回0?我将如何在 python 中做类似的事情?
- android - Xamarin.Forms 项目不会启动 Android 模拟器
- react-native - 来自 JS 的格式错误的调用:字段大小不同
- facebook - 在开发模式下输入什么 URL?
- typescript - 打字稿 - 递归函数
- sql - SQL Azure 上的查询性能极差