chrome 插件:content-script 部分逻辑在页面无法生效,可考虑插入 script 到页面上

背景:

某页面有个输入框, 用的应该是什么库里的组件, 直接修改内容不生效/机制不明确, 于是使用 paste event 粘贴到输入框, 结果发现也不行

定位:

  1. 使用 mutationObserver , 发现事件确实触发了, 输入框内容变了, 但马上又变回来了, 于是怀疑是输入框组件有做 mutationOberser 监听, 发现不符合规范的变动马上变回来; 但整个页面另存为之后, 没找到对应逻辑
  2. 发现代码在网页控制台里运行, 可以实现功能
  3. 发现了另一个插件可实现粘贴功能, 参考对方实现

结论:

  1. 把逻辑从 content-script 抽取出来, 由 content-script 生成 script 标签, 插入到页面上去, 这样就实现了

    原理不清楚, 可能 content-script 运行的环境跟 script 运行的环境不同导致的吧, 从控制台里打印的语句也能看出来, 控制台也分了层级, 默认当前页面, 底下还有各种插件的控制台

  2. 插入代码到页面具体方法, 参考该插件, 单独弄一个可独立运行的 js 文件, 打包好, content-script 里使用 chrome.extension.getURL 获取此 js 的地址, 生成 script , 指定地址, 加载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: -webkit-scrollbar 不生效可能是因为以下原因: 1. 浏览器版本过低,不支持该属性。 2. 该属性被浏览器厂商禁用了。 3. 该属性被其他 CSS 样式覆盖了。 4. 该属性被 JavaScript 动态修改了。 解决方法: 1. 升级浏览器版本。 2. 检查浏览器是否禁用了该属性。 3. 检查其他 CSS 样式是否覆盖了该属性。 4. 禁止 JavaScript 动态修改该属性。 ### 回答2: 在网页设计中,经常会遇到需要使用 CSS 样式来美化滚动条的需求。而其中涉及到的 -webkit-scrollbar 样式,是 WebKit 内核浏览器(如 Chrome、Safari 等)特有的样式。 -webkit-scrollbar 样式主要包括以下几个属性: - ::-webkit-scrollbar:用于匹配整个滚动条元素。 - ::-webkit-scrollbar-button:用于匹配滚动条的按钮部分。 - ::-webkit-scrollbar-thumb:用于匹配滚动条的滑块部分。 - ::-webkit-scrollbar-track:用于匹配滚动条的轨道部分。 - ::-webkit-scrollbar-corner:用于匹配轨道和滑块的交汇处。 遇到 -webkit-scrollbar 样式不生效的问题,可能有以下几个原因: 一、浏览器不支持 -webkit-scrollbar 样式 -webkit-scrollbar 样式是 WebKit 内核浏览器特有的,因此其他的浏览器(如 Firefox、Edge 等)并不支持该样式。如果我们在 Firefox 浏览器中使用 -webkit-scrollbar 样式,是无法生效的。 二、特定浏览器版本的问题 -webkit-scrollbar 样式也会因浏览器版本的不同而产生差异。需要根据不同的浏览器版本选择合适的样式来使用。 三、样式命名问题 在使用 -webkit-scrollbar 样式时,我们需要注意其命名规则。由于使用的是双冒号 (::),因此样式命名需要精确匹配。如下面的示例代码: ::-webkit-scrollbar { width: 8px; } 此时如果将 ::-webkit-scrollbar 写成了 :-webkit-scrollbar,或者将双冒号漏掉,样式就会失效。因此,在书写 -webkit-scrollbar 样式时,需要仔细检查样式命名是否正确。 综上所述,-webkit-scrollbar 样式不生效可能有多种原因,需要从浏览器支持、版本以及样式命名等方面进行排查。同时,也需要注意 -webkit-scrollbar 样式只适用于 WebKit 内核浏览器,其他浏览器需要使用不同的样式来美化滚动条。 ### 回答3: 在网页开发中,我们可以通过CSS样式来控制网页的外观,其中包括控制滚动条的样式和行为。CSS提供了一个名为“::-webkit-scrollbar”的伪元素,可以用来调整Webkit浏览器(如Chrome、Safari等)的滚动条样式。 通常情况下,我们可以通过设置“::-webkit-scrollbar”的各个属性来自定义滚动条的外观和行为,比如“::-webkit-scrollbar-track”用于设置滚动条的背景颜色,“::-webkit-scrollbar-thumb”用于设置滚动条的滑块颜色等等。 但是,有时候我们在使用“::-webkit-scrollbar”时,会发现它不生效,滚动条的样式还是默认的。这可能是由于以下原因: 1. 兼容性问题:虽然“::-webkit-scrollbar”是Webkit浏览器的私有属性,但是并不是在所有版本的Webkit浏览器中都被支持或者支持程度不同,可能会导致某些样式无法生效。 2. 样式优先级问题:如果CSS样式表中同时设置了多个滚动条的样式,可能会出现样式冲突的问题,导致一些样式无法被应用。此时,我们可以通过检查CSS样式表中各个样式的优先级来解决问题。 3. 浏览器设置问题:有些浏览器可能会禁止用户自定义滚动条的样式,这时就算使用了“::-webkit-scrollbar”也无法生效。用户可以通过浏览器设置或插件来解决此问题。 针对这些问题,我们可以采取以下方法来解决“::-webkit-scrollbar”不生效的问题: 1. 检查代码:检查代码中是否设置了正确的样式、是否设置了多个样式等问题。 2. 多用其他样式:如果“::-webkit-scrollbar”不起作用,我们可以尝试使用其他样式来控制滚动条,比如使用JavaScript和jQuery等技术来实现滚动条的样式和行为。 3. 优先级调整:调整CSS样式中各个样式的优先级,确保“::-webkit-scrollbar”样式能够被最终应用。 总之,“::-webkit-scrollbar”不生效的原因可能有很多,我们需要仔细检查代码和调试样式,找出并解决问题。同时,我们可以尝试使用其他技术实现相同的效果,以达到预期的目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值