KurosakiRei 发表于 2023-4-14 00:05:13

脚本的样式冲突问题(样式隔离)

我写的脚本是关于给视频网站没有弹幕功能的播放器,添加本地弹幕功能和网络弹幕功能的。
用的模板是自己魔改的模板 (https://github.com/KurosakiRei/webpack-userscript-template-with-vue3)
用的组件是VuesticUI(https://vuestic.dev/)

正常效果大概是这样的
!(data/attachment/forum/202304/13/235243mg41xfg2t46hxx1u.png)

写的时候其实就有发现有样式冲突问题,想说能不能用Vue写,因为写样式时可以带scoped属性实现样式隔离,但写完发现并不可以(因为开发时只给自己常用的几个网站做兼容)

如果碰到没做过测试的网站,脚本的css和网站的css就互相冲突,大概是这样
!(data/attachment/forum/202304/13/235941e73ogw9twz2tfcpn.png)

所以想来请教一下,脚本的样式隔离要怎么做,求大神指点一二

steven026 发表于 2023-4-14 00:05:14

shadowRoot可以样式隔离
但是很多库都没做shadowRoot兼容,会使js也隔离了,导致组件无法被监听或者响应

李恒道 发表于 2023-4-14 02:21:42

感觉可以尝试使用shadowRoot看看?(未测试)
或者开个iframe?

KurosakiRei 发表于 2023-4-22 23:36:46

李恒道 发表于 2023-4-14 02:21
感觉可以尝试使用shadowRoot看看?(未测试)
或者开个iframe?

应该没人回帖了,shadowRoot看了下MDN,不是很懂(感觉脚本改起来应该很复杂,说不定会有楼下说的兼容性问题),我试试iframe吧,十分感谢

KurosakiRei 发表于 2023-4-22 23:37:57

steven026 发表于 2023-4-14 00:05
shadowRoot可以样式隔离
但是很多库都没做shadowRoot兼容,会使js也隔离了,导致组件无法被监听或者响应 ...

感谢回帖,我试试楼上说的iframe吧

KurosakiRei 发表于 2023-4-22 23:40:00

好像最佳答案给错了{:4_87:},不好意思。。。。

李恒道 发表于 2023-4-23 00:25:22

KurosakiRei 发表于 2023-4-22 23:40
好像最佳答案给错了,不好意思。。。。

没关系,你知道一个魔咒吗
我跟steven同时出现
永远没人搭理我,跟steven聊
我习惯了

steven026 发表于 2023-4-23 09:19:41

李恒道 发表于 2023-4-23 00:25
没关系,你知道一个魔咒吗
我跟steven同时出现
永远没人搭理我,跟steven聊

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
笑死我了
心疼哥哥1分钟
页: [1]
查看完整版本: 脚本的样式冲突问题(样式隔离)