小编Mat*_*eld的帖子

Chrome扩展程序:如何使用insertCSS从chrome存储中插入CSS条件?

我对Chrome扩展程序有些陌生,所以我想我可能只是缺少一些小东西,但我试图允许用户根据他们的选项加载一个额外的CSS页面和一个JS页面(它基本上是一个不同的主题).

我将应该触发负载的变量存储为"tm"

现在,在JS页面中,我有:

var Theme;
function getVars() {
  chrome.storage.sync.get({
    tm: "",
  }, function(items) {
    Theme = items.tm;
    changeTheme();
  });
}
Run Code Online (Sandbox Code Playgroud)

其中触发changeTheme函数并根据Theme的值运行正确的JS函数.麻烦的是我还需要加载一张CSS表,但我无法弄清楚这一部分.现在,在同一个JS文件中,在changeTheme函数中,我也在调用:

chrome.tabs.insertCSS({file: "starWars.css"});
Run Code Online (Sandbox Code Playgroud)

这给了我错误:

 Error in response to storage.get: TypeError: Cannot read property 'insertCSS' of undefined
at changeTheme (chrome-extension://ipicalmjapbogbfpaddglpachiijdffn/starWars.js:96:14)
at Object.callback (chrome-extension://ipicalmjapbogbfpaddglpachiijdffn/starWars.js:7:5)
at getVars (chrome-extension://ipicalmjapbogbfpaddglpachiijdffn/starWars.js:3:23)
at chrome-extension://ipicalmjapbogbfpaddglpachiijdffn/starWars.js:10:1
Run Code Online (Sandbox Code Playgroud)

我的清单版本是2,与我在此发现的其他stackoverflow帖子不同.您不能在版本2清单中使用背景,并且由于其他原因我需要保留此版本.我的权限中有"tabs"和"activeTab",以及扩展名的页面.任何人都可以从这里指出我正确的方向吗?很高兴在需要时提供更多信息.

javascript google-chrome google-chrome-extension

2
推荐指数
1
解决办法
699
查看次数