高德或者百度地图的外链script触发了高德地图的回调函数。回调函数里的有document.body.removeChild的逻辑,要删除高德的外链script。但在wujie插件中配不配置jsIgnores,高德地图的回调函数removeChild都无法删除
出现以上问题
我们可以使用一下方法解决:
const { bus,setupApp,preloadApp,destroyApp ] = WujieVue;
preloadApp({
name: 'vite',
url: hostMap("vite"),
exec: true,
plugins:[
{
jsIgnores: [/baidu/], // [/amap\.com/]
// _element为真正插入的元素, _iframeWindow为子应用的window,rawElement为原始插入元素
appendOrInsertElementHook(_element: any, _iframeWindow: any, rawElement: any) {
// 以下函数也可以用此行代替 _iframeWindow.document.body.removeChild=() => null
if (rawElement) {
Object.defineProperty(rawElement,'parentNode', {
get: () => ({ removeChild: () => null })
})
}
}
}
]
})
同理也可以举一反三遇到类似的问题,都可以通过此操作来防止报错
如果上面的内容复制进页面后无法起作用,可能是我拼写错误导致的,请仔细检查。
高德子应用地图第一次加载报错的问题,在插件中处理一下不报错了
{
jsIgnores: [/amap\.com/],
appendOrInsertElementHook(_element: any, _iframeWindow: any, rawElement: any) {
_iframeWindow.document.body.removeChild=() => null
}
},
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。