可以从Chrome扩展程序中的后台脚本操纵CSS内容脚本吗

时间:2019-06-21 19:36:15

标签: javascript css google-chrome

是否可以预先处理CSS内容脚本文件(例如vars)?

我正在制作一个chrome扩展程序,该扩展程序允许用户针对特定网站自定义主题。目前,我正在将所选主题中的最新更新数据存储在while(dir = readdir(d)) { if(S_ISDIR(buf.st_mode)) puts(dir->d_name); } closedir(d); 中。然后,JS内容脚本通过端口发送消息并接收数据(还注入了CSS内容脚本)。然后,JS内容脚本随后为CSS内容脚本设置CSS变量。我目前遇到的问题是,即使将background.js设置为"run_at",该过程也太慢,似乎仍然存在一到两秒的延迟,大多数延迟似乎是端口通信,而不是CSS文件。 ({"document_start"文件不是从chrome.storage获取数据,而是从变量获取数据,该变量每次都通过chrome.storage.onChanged更新)

background.js

background.js

content.js

let lastSelectedTheme;
let lastCustomThemes;
let lastDefaultThemes;
let selectedThemeInfo = {
    name: "dark",
    background: "#151515",
    secondaryBackground: "#191a1c",
    topBar: "#000000",
    normalTextColor: "#ffffff",
    lighterTextColor: "#e8e8e8"
};

(() => {
    getValue("customThemes").then(res => {
        lastCustomThemes = res;
    });
    getValue("defaultThemes").then(res => {
        lastDefaultThemes = res;
    });
})();

function onMessageReceived(request, sender, sendResponse) {
    if (request.name === "content") {
        sendResponse(selectedThemeInfo);
    }
}

chrome.storage.onChanged.addListener(onStorageChange);

0 个答案:

没有答案