umijs / qiankun

📦 🚀 Blazing fast, simple and complete solution for micro frontends.
https://qiankun.umijs.org
MIT License
15.74k stars 2.01k forks source link

[bug]加载子应用的时候,往head里面插入link样式表,为什么直接插入到shadow里面? #1548

Closed chenxing1991 closed 3 years ago

chenxing1991 commented 3 years ago

What happens? 子应用挂载前执行如下逻辑: const head = document.getElementsByTagName('head')[0] let linkTag = document.getElementById(linkId) linkTag && linkTag.parentNode.removeChild(linkTag) linkTag = document.createElement('link') linkTag.href = path linkTag.rel = 'stylesheet' linkTag.type = 'text/css' linkTag.setAttribute('id', linkId) linkTag.onload = () => resolve() linkTag.onerror = err => reject(err) head.appendChild(linkTag) 打印出来head是主应用的head,实际效果是linkTag插入了shadow-root下面,虽然符合预期,但是想知道是什么原理? image

最小可复现仓库 无

复现步骤,错误日志以及相关配置 无

相关环境信息 浏览器版本: chrome最新 操作系统: win10 Node 版本: 10+

gongshun commented 3 years ago

https://github.com/umijs/qiankun/issues/1271 重复