Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome扩展:根据localStorage中的选项插入不同的CSS文件_Javascript_Css_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript Chrome扩展:根据localStorage中的选项插入不同的CSS文件

Javascript Chrome扩展:根据localStorage中的选项插入不同的CSS文件,javascript,css,google-chrome,google-chrome-extension,Javascript,Css,Google Chrome,Google Chrome Extension,所以,我尝试做一个扩展,它有一个选项页面来选择CSS的一个变体,然后实现它 我可以使用内容脚本将CSS成功添加到页面,我的清单为: { "name": "Extension", "description": "Description.", "version": "0.1", "manifest_version": 2, "options_page": "options.html", "content_scripts": [ { "mat

所以,我尝试做一个扩展,它有一个选项页面来选择CSS的一个变体,然后实现它

我可以使用内容脚本将CSS成功添加到页面,我的清单为:

{
  "name": "Extension",
  "description": "Description.",
  "version": "0.1",
  "manifest_version": 2,
  "options_page": "options.html",


    "content_scripts": [
      {
        "matches": ["http://www.google.com*"],
        "css": ["Test.css"]
      }
    ]
}
这很好,选项页面只是来自的默认示例HTML和JavaScript

这适用于存储到localStorage的值,我不确定的是如何使用存储的值根据该值添加不同的CSS。比如,存储值“红色”将加载一个CSS文件到网站,而“绿色”将加载一个完全不同的CSS文件


非常感谢。

您应该从清单中删除
内容脚本
属性(因为无法动态“自定义”它),并改用(更具体地说是)。
(注意:根据您使用/调用它的方式,您需要在清单中声明
activeTab
tabs
权限,以及相应的

例如:

WhatEverView.html
的JS上下文中

var color = ...;
localStorage.setItem("color", color);
background.js中的

function injectCSS(tabId) {
    var color = localStorage.getItem("color");
    var path = (color == "green") ? "file4green.css" : "file4red.css"; 
    chrome.tabs.insertCSS(tabId, {
        file: path,
        allFrames: false
    });
}

/* Call `injectCSS` in a callback of an event, e.g.
 *  - When the bowser-/page-action is clicked
 *  - When a tab is updated etc */

您应该从清单中删除
content\u scripts
属性(因为无法动态“自定义”它),并使用(更具体地说是)。
(注意:根据您使用/调用它的方式,您需要在清单中声明
activeTab
tabs
权限,以及相应的

例如:

WhatEverView.html
的JS上下文中

var color = ...;
localStorage.setItem("color", color);
background.js中的

function injectCSS(tabId) {
    var color = localStorage.getItem("color");
    var path = (color == "green") ? "file4green.css" : "file4red.css"; 
    chrome.tabs.insertCSS(tabId, {
        file: path,
        allFrames: false
    });
}

/* Call `injectCSS` in a callback of an event, e.g.
 *  - When the bowser-/page-action is clicked
 *  - When a tab is updated etc */

您应该从清单中删除
content\u scripts
属性(因为无法动态“自定义”它),并使用(更具体地说是)。
(注意:根据您使用/调用它的方式,您需要在清单中声明
activeTab
tabs
权限,以及相应的

例如:

WhatEverView.html
的JS上下文中

var color = ...;
localStorage.setItem("color", color);
background.js中的

function injectCSS(tabId) {
    var color = localStorage.getItem("color");
    var path = (color == "green") ? "file4green.css" : "file4red.css"; 
    chrome.tabs.insertCSS(tabId, {
        file: path,
        allFrames: false
    });
}

/* Call `injectCSS` in a callback of an event, e.g.
 *  - When the bowser-/page-action is clicked
 *  - When a tab is updated etc */

您应该从清单中删除
content\u scripts
属性(因为无法动态“自定义”它),并使用(更具体地说是)。
(注意:根据您使用/调用它的方式,您需要在清单中声明
activeTab
tabs
权限,以及相应的

例如:

WhatEverView.html
的JS上下文中

var color = ...;
localStorage.setItem("color", color);
background.js中的

function injectCSS(tabId) {
    var color = localStorage.getItem("color");
    var path = (color == "green") ? "file4green.css" : "file4red.css"; 
    chrome.tabs.insertCSS(tabId, {
        file: path,
        allFrames: false
    });
}

/* Call `injectCSS` in a callback of an event, e.g.
 *  - When the bowser-/page-action is clicked
 *  - When a tab is updated etc */

令人惊叹的。很抱歉,我在最初的问题中只给出了两个选项,但假设我有20个不同的选项,我是否应该使用一个开关或一堆if-else语句来设置路径?您可以使用
switch
if…else
(有等效项)。您还可以将保存的项作为文件名(例如,
color:“green”
指的是名为
green.css
等的文件),这样代码就不会那么混乱了:
var color=localStorage.getItem(“color”);var路径=颜色?颜色+“.css”:“default.css”我将其标记为已接受,因为它确实解决了我应用不同CSS文件的问题。谢谢你,伙计。但不能提高投票率,声誉不够。太棒了。很抱歉,我在最初的问题中只给出了两个选项,但假设我有20个不同的选项,我是否应该使用一个开关或一堆if-else语句来设置路径?您可以使用
switch
if…else
(有等效项)。您还可以将保存的项作为文件名(例如,
color:“green”
指的是名为
green.css
等的文件),这样代码就不会那么混乱了:
var color=localStorage.getItem(“color”);var路径=颜色?颜色+“.css”:“default.css”我将其标记为已接受,因为它确实解决了我应用不同CSS文件的问题。谢谢你,伙计。但不能提高投票率,声誉不够。太棒了。很抱歉,我在最初的问题中只给出了两个选项,但假设我有20个不同的选项,我是否应该使用一个开关或一堆if-else语句来设置路径?您可以使用
switch
if…else
(有等效项)。您还可以将保存的项作为文件名(例如,
color:“green”
指的是名为
green.css
等的文件),这样代码就不会那么混乱了:
var color=localStorage.getItem(“color”);var路径=颜色?颜色+“.css”:“default.css”我将其标记为已接受,因为它确实解决了我应用不同CSS文件的问题。谢谢你,伙计。但不能提高投票率,声誉不够。太棒了。很抱歉,我在最初的问题中只给出了两个选项,但假设我有20个不同的选项,我是否应该使用一个开关或一堆if-else语句来设置路径?您可以使用
switch
if…else
(有等效项)。您还可以将保存的项作为文件名(例如,
color:“green”
指的是名为
green.css
等的文件),这样代码就不会那么混乱了:
var color=localStorage.getItem(“color”);var路径=颜色?颜色+“.css”:“default.css”我将其标记为已接受,因为它确实解决了我应用不同CSS文件的问题。谢谢你,伙计。但不能提高投票率,声誉不够。