【问题标题】:Runtime modification of Chrome extension resident stylesheetChrome 扩展常驻样式表的运行时修改
【发布时间】:2023-03-28 07:20:02
【问题描述】:

我们正在编写一个用于创建信息弹出窗口的 Chrome 扩展程序。我们希望能够在运行时根据用户的请求切换字体大小。

奇怪的是,包含在 Chrome 扩展清单中的样式表并没有出现在样式表的页眉列表中。

我认为样式表必须使用 chrome.extension.getStylesheet 或类似的操作符来引用。

一旦我们有了指向相关样式表的对象指针,我们就打算调整相应元素的字体大小。

有什么帮助吗?

山姆

【问题讨论】:

  • 我没有看到任何 API 来切换注入的样式表。只需在内容脚本中添加一个带有 id 或其他内容的普通 <style> 元素。

标签: javascript css google-chrome-extension


【解决方案1】:

通过清单文件注入的样式表无法通过 API 进行编辑。

如果要动态更改值,请使用chrome.tabs.insertCSS(请参阅optionally inject content scripts 了解及时调用insertCSS 的几种方法的细分)或chrome.declarativeContent.RequestContentScript。后者还不接受任意代码。幸运的是,合理字体大小的数量是有限的,因此您可以为(例如)7 到 40 的字体大小硬编码不同的样式表并完成。

如果样式表只对几个页面有用,并且值是在内容脚本中动态计算的,那么创建和注入 <style> 也是一个不错的选择。

如果您使用完全相同的 CSS 选择器,则最后一个样式表将始终优先于前一个样式表(如果选择器不同,则 CSS specificity 将确定发生的情况)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多