在页面完全呈现之前,立即将Chrome扩展程序中的CSS样式应用于页面

用户59

我是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"]
    }
   ],

但是现在的问题是,在应用此扩展之前,我想检查用户是否在弹出窗口中按下了“启用”按钮。为此,请在filter.js和后台脚本中检查chrome存储器等,以查看用户是否将enabled标志设置为true。

然后,我使用该chrome.tabs.insertCSS方法插入我的CSS文件。

在用户按下扩展名上的禁用的情况下,浏览器仍将使用效果渲染页面,filter.css直到运行JS删除效果为止。到这种情况发生时,用户已经看到了filter.css我不想要的效果。

我想要的是浏览器在页面显示给用户之前立即应用或不应用我的样式(取决于用户是否启用/禁用)。

到目前为止,注入CSS的方法都导致了延迟。必须有可能不加延迟地将其添加或删除CSS,因为我使用了Dark Reader之类的扩展程序,这些扩展程序似乎能够立即应用其样式,而无需显示没有CSS的浏览器内容。

理想情况下,将有一种方法可以在清单中进行条件检查,但是我知道这是不可能的。我还可以做些什么?

任何帮助,将不胜感激!

谢谢阅读!

用户59

终于设法解决了我的问题。问题不在于插入CSS的任何函数,只是我正在运行我的代码以将CSS注入window.onload函数中。:facepalm:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CSS不会应用于呈现的页面,但会在IDE中显示

来自分类Dev

将引导程序样式仅应用于页面中的一个部分

来自分类Dev

将引导程序样式仅应用于页面中的一个部分

来自分类Dev

Chrome扩展程序:在页面呈现/加载之前获取页面的html

来自分类Dev

Chrome扩展程序:在页面呈现/加载之前获取页面的html

来自分类Dev

来自样式标签的CSS样式未正确应用于页面

来自分类Dev

将自定义样式应用于内部Chrome页面

来自分类Dev

为什么将我的jQueryMobile CSS样式应用于链接页面?

来自分类Dev

样式表未应用于页面加载

来自分类Dev

页面特定样式应如何应用于 BEM 块?

来自分类Dev

将 CSS 应用于 Wordpress 中父页面的子页面

来自分类Dev

为什么WinJS Navigation应用程序将CSS应用于任何访问过的页面?

来自分类Dev

将css样式应用于Angular 2应用程序中的所有组件

来自分类Dev

扩展程序页面中的Chrome图标

来自分类Dev

将引导程序应用于Django注册页面

来自分类Dev

Javascript类setAttribute应用于Chrome扩展程序

来自分类Dev

Chrome扩展程序:在页面加载之前注入JS

来自分类Dev

用于Qt快速QML应用程序的自定义样式页面(如HTML和CSS)

来自分类Dev

输入:无效的CSS规则应用于页面加载

来自分类Dev

CSS类应用于整个页面而不是特定的div

来自分类Dev

无法为stackoverflow.com中的每个主题将页面CSS应用于DIV?

来自分类Dev

Tinymce 4内联css内容应用于页面,而不是仅应用于div

来自分类Dev

将效果应用于页面中的许多ID

来自分类Dev

Rails-应用程序布局未在显示页面,新建页面和编辑页面中呈现

来自分类Dev

列表样式应用于CSS中的嵌套列表元素

来自分类Dev

将CSS中的样式应用于新添加的元素

来自分类Dev

无法将CSS样式应用于Flex中的Alert

来自分类Dev

将CSS中的样式应用于新添加的元素

来自分类Dev

将CSS应用于除一个特定页面之外的所有页面

Related 相关文章

  1. 1

    CSS不会应用于呈现的页面,但会在IDE中显示

  2. 2

    将引导程序样式仅应用于页面中的一个部分

  3. 3

    将引导程序样式仅应用于页面中的一个部分

  4. 4

    Chrome扩展程序:在页面呈现/加载之前获取页面的html

  5. 5

    Chrome扩展程序:在页面呈现/加载之前获取页面的html

  6. 6

    来自样式标签的CSS样式未正确应用于页面

  7. 7

    将自定义样式应用于内部Chrome页面

  8. 8

    为什么将我的jQueryMobile CSS样式应用于链接页面?

  9. 9

    样式表未应用于页面加载

  10. 10

    页面特定样式应如何应用于 BEM 块?

  11. 11

    将 CSS 应用于 Wordpress 中父页面的子页面

  12. 12

    为什么WinJS Navigation应用程序将CSS应用于任何访问过的页面?

  13. 13

    将css样式应用于Angular 2应用程序中的所有组件

  14. 14

    扩展程序页面中的Chrome图标

  15. 15

    将引导程序应用于Django注册页面

  16. 16

    Javascript类setAttribute应用于Chrome扩展程序

  17. 17

    Chrome扩展程序:在页面加载之前注入JS

  18. 18

    用于Qt快速QML应用程序的自定义样式页面(如HTML和CSS)

  19. 19

    输入:无效的CSS规则应用于页面加载

  20. 20

    CSS类应用于整个页面而不是特定的div

  21. 21

    无法为stackoverflow.com中的每个主题将页面CSS应用于DIV?

  22. 22

    Tinymce 4内联css内容应用于页面,而不是仅应用于div

  23. 23

    将效果应用于页面中的许多ID

  24. 24

    Rails-应用程序布局未在显示页面,新建页面和编辑页面中呈现

  25. 25

    列表样式应用于CSS中的嵌套列表元素

  26. 26

    将CSS中的样式应用于新添加的元素

  27. 27

    无法将CSS样式应用于Flex中的Alert

  28. 28

    将CSS中的样式应用于新添加的元素

  29. 29

    将CSS应用于除一个特定页面之外的所有页面

热门标签

归档