当前位置: 首页 > 面试题库 >

我的CSS没有通过我的内容脚本注入

凌景辉
2023-03-14
问题内容

谁能向我解释一下。我正在尝试使用具有Google扩展名的content_script将CSS文件注入到网页中,但是我的CSS文件从未添加到网页中。有人可以告诉我我在做什么错并帮助我解决吗?谢谢

表现:

{
  "name": "Extension",
  "version": "0",
  "description": "",


  "permissions": ["tabs", "http://*/*", "https://*/*", "file:///*/*"],
    "content_scripts": [
    {
        "matches": [ "http://*/*", "https://*/*", "file:///*/*"],
        "css": ["myStyles.css"],
        "js": ["myScript.js"],
        "all_frames": true
    }
  ]
}

myStyles.css

#test {
    margin: 0 10px;
    background: #fff;
    padding: 3px;
    color: #000;
}

问题答案:

样式表实际上是注入的,但没有应用,因为其他样式会覆盖规则。要使规则生效,您可以选择以下选项:

  1. 增加CSS规则的特异性。
  2. 在每个规则后缀!important

    #test {
    margin: 0 10px !important;
    background: #fff !important;
    padding: 3px !important;
    color: #000 !important;
    

    }

  3. 通过内容脚本注入CSS:

myScript.js

    var style = document.createElement('link');
style.rel = 'stylesheet';
style.type = 'text/css';
style.href = chrome.extension.getURL('myStyles.css');
(document.head||document.documentElement).appendChild(style);

manifest.json

    {
  "name": "Extension",
  "version": "0",
  "description": "",
  "manifest_version": 2,
  "permissions": ["tabs", "http://*/*", "https://*/*", "file:///*/*"],
  "content_scripts": [
    {
        "matches": [ "http://*/*", "https://*/*", "file:///*/*"],
        "js": ["myScript.js"],
        "all_frames": true
    }
  ],
  "web_accessible_resources": ["myStyles.css"]
}

web_accessible_resources当清单版本2处于活动状态时,最后一个键是必需的,以便可以从非扩展页面读取CSS文件。



 类似资料:
  • 如果我从终端uvicorn main:app运行--重新加载一切工作。 当把它放在my_script.sh文件中时 然后什么都没发生。为什么? 我发现了这个:Uvicorn/FastAPI可执行文件,但似乎没有答案。

  • Im使用css按钮生成器为我的css按钮创建代码,它生成css代码和用于插入css代码的html代码。但我不知道该用什么类名。我试过了 但在网站预览中显示为空白。 对于一个离线站点来说,设计很简单,把按钮内联是不是更好呢?该网站将被制成光盘。我正在使用dreamweaver CS6。

  • 我一直有一个严重的问题与我的PDF文件。我想从我的PDF中提取所有的文本。提取后,我有所有的字节码。 我怎样才能从中提取文本呢?

  • 问题内容: 当生存时间达到0时,我的Redis服务器不会删除密钥。 这是一个示例代码: 如果我通过redis检查信息返回,它说0个密钥已过期。 任何想法? 谢谢。 问题答案: 由于您正在执行“ …”,因此很难确定,但是我要说的是您在该部分设置了mykey,这将有效地消除过期。 从EXPIRE手册 仅当使用DEL命令删除密钥或使用SET或GETSET命令覆盖密钥时,才清除超时 另外,关于TTL的-1

  • 问题内容: 我的工作正常,但现在停止了。我尝试了以下命令,但无济于事: -在主机和容器上 我所得到的是。Docker版本0.7.0 有任何想法吗? PS也禁用 问题答案: 遵循以下建议进行修复: […]您可以尝试重设所有内容吗? 它将迫使docker重新创建网桥并重新初始化所有网络规则 https://github.com/dotcloud/docker/issues/866#issuecomme

  • 我让它正常工作,但现在它停止了。我尝试了以下命令,但没有用: -在主机和容器上 我得到的是未知主机google。com。Docker版本0.7.0 有什么想法吗? P、 S.ufw也被禁用