javascript - 如何在谷歌浏览器扩展中切换 css 样式( list )

标签 javascript css google-chrome google-chrome-extension

我在 manifest.json 中有这段代码:

{
  "name": "Simple Css Modification",
  "description": "Simple Css Modification",
  "version": "0.1",
  "browser_action": {
  "default_icon": "icon.png"
  },
  "content_scripts": [
  {
  "matches": ["*://localhost/*"],
  "css": ["style.css"]
  }
  ],
"manifest_version": 2
}

样式效果很好,就像在 style.css 中一样。

我没有任何类型的背景 .js 文件或扩展文件夹中的任何 js 文件。 所以,我的问题是,如何通过单击图标来切换“style.css”文件? 我知道有 https://developer.chrome.com/extensions/browserAction但我不知道如何正确实现。 谢谢。

最佳答案

这是一个非常简单的 js 添加,应该可以让您获得基本功能:

在 manifest.json 中,您可以添加一个名为 toggleCss.js 的 javascript 文件:

"content_scripts": [
  {
    "matches": ["*://localhost/*"],
    "css": ["style.css"],
    "js": ["toggleCss.js"]
  }
],

您还需要为 browser_action 图标和标题添加一些配置(按照您链接的指南,忽略 default_popup)。

toggleCss.js 中,为浏览器操作图标添加一个点击处理程序,并在页面的 body 元素上简单地切换一个自定义类:

chrome.browserAction.onClicked.addListener(function(){
    document.body.classList.toggle('customCssClass');
});

然后将所有自定义 CSS 都基于具有该类的主体。假设您希望所有 spans 都为红色:

body.customCssClass span {
    color: red;
}

根据您的目标,使用 javascript 直接在您想要影响的元素上切换类可能会更高效,但是如果您喜欢的话,使用 body 可以让您将逻辑保留在 css 中.

关于javascript - 如何在谷歌浏览器扩展中切换 css 样式( list ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38003840/

相关文章:

javascript - 在js中向外界隐藏变量值

javascript - Chart.js 更新雷达图动画

twitter-bootstrap - Bootstrap 4.2.1 - 如何覆盖按钮轮廓?

html - 边距折叠相邻元素

javascript - 为什么 console.table 不显示最后一个条目

css - 如何做一个 Chrome/Opera 特定的样式表?

javascript - ng-无效关注输入或选择元素

javascript - Highcharts json php 多个系列

jquery - 由于 JQuery,我无法隐藏滚动条

javascript - 在浏览器中测量和基准测试 javascript 引擎的处理能力