javascript - 在 shadow-root 中注入 CSS 样式而不是 head 标签 | Vue.js 和 Webpack
问题描述
我正在使用 Vue.js 和vue-custom-element为网站制作一个可嵌入的小部件。一切都很顺利,直到我遇到问题。
当我尝试使用包中的组件(带有 css)时。例如像vue-number-input一样。即使应该将 css 添加到 shadow root 中,css 也会被注入到网页的头部。
经过大量研究,我还没有找到解决方案。
正如您在此处看到的,您看到数字输入包中的 css 被注入到头部,而其他样式则像它们应该的那样位于阴影根中。
据我所知,我更改了使应用程序在影子根中工作所需的所有设置。
这是我的vue.config.js
,我的main.js(我注册自定义元素的地方)和我的组件(我从包中导入组件的地方)。
有谁知道我怎么能做到这一点,或者这甚至可能吗?
谢谢!
解决方案
如果库本身将样式嵌入到页面的头部,那么除了编写一些脚本在初始化后手动将其复制到 shadow dom 中之外,您无能为力。我在 Font Awesome 图标上遇到了同样的问题。幸运的是,他们为此提供了解决方案。(https://github.com/FortAwesome/vue-fontawesome#web-components-with-vue-web-component-wrapper)
推荐阅读
- angular - Fetch as Google 返回 Angular 6 路由 URL 的 404 错误
- python - 我应该如何以及在哪里添加检查条件以查看用户在 Django 中是否超过 18 岁?
- django - 页面匹配查询不存在 - Django
- cmd - 除非指定输出文件,否则 VBScript 的 Shell 命令不会执行
- wordpress - 如何在 WordPress 中正确设置永久链接
- javascript - 播放暂停按钮切换按钮
- docker - 在 Rancher/Kubernates (RKE) 中为 internal_address 打开端口?
- vb.net - Accord.net 的 Cobyla 优化约束
- github - 如何在 GIthub 上创建新分支而不在本地签出和推送?
- php - 访问 PHP 类方法