Use*_*r59 6 html javascript css browser google-chrome-extension
我是 chrome(甚至浏览器)扩展的新手,我正在尝试制作一个将一些自定义 CSS 规则应用于某些页面元素的扩展。它似乎按预期工作,但有一些轻微的烦恼。
也就是说,当我使用 JS 应用任何 CSS 样式规则时,页面在浏览器中完全呈现到应用我的扩展的 CSS 规则之间似乎存在延迟。
我发现解决这个问题的一种方法是将我想立即应用到清单文件的 CSS 文件添加到 . 下content_scripts
,如下所示:
"content_scripts": [
{
"run_at": "document_start",
"all_frames": true,
"matches": ["<all_urls>"],
"js": ["filter.js"],
"css": ["filter.css"]
}
],
Run Code Online (Sandbox Code Playgroud)
但现在的问题是,我想检查用户是否在应用此扩展程序的弹出窗口中按下了“启用”按钮。为此,在filter.js
后台脚本中,我检查了 chrome 存储等,以查看用户是否将启用标志设置为 true。
然后我使用该chrome.tabs.insertCSS
方法插入我的 CSS 文件。
在用户在扩展上按下禁用的情况下,浏览器仍会呈现具有 效果的页面,filter.css
直到它运行 JS 以移除效果。到发生这种情况时,用户已经看到了filter.css
我不想要的效果。
我想要的是浏览器在页面显示给用户之前立即应用或不应用我的样式(取决于用户是否已启用/禁用)。
到目前为止,注入 CSS 的方法都导致了延迟。必须可以毫不拖延地将其添加到或删除 CSS,因为我使用了诸如 Dark Reader 之类的扩展程序,这些扩展程序似乎能够立即应用其样式,而无需在没有 CSS 的情况下显示浏览器内容。
理想情况下,有一种方法可以在清单中进行条件检查,但我知道这是不可能的。我还可以做些什么?
任何帮助,将不胜感激!
谢谢阅读!
归档时间: |
|
查看次数: |
179 次 |
最近记录: |