[英]How to change a contentscript variable on click on the icon of a Chrome extension?
我想通過單擊Chrome擴展程序的圖標來更改內容腳本文件中的變量。 你知道我該怎么做嗎?
這是我的代碼示例:
var myVariable = false;
chrome.browserAction.onClicked.addListener(function (tab) { //Fired when User Clicks ICON
chrome.tabs.executeScript(tab.id, {
"file": "zen-reading.js"
}, function () {
console.log("Script Executed .. ");
});
if (myVariable === false) {
chrome.tabs.executeScript({
code: 'myVariable = ' + true + ';'
});
myVariable = true;
}
else {
chrome.tabs.executeScript({
code: 'myVariable = ' + false + ';'
});
zenMode = myVariable;
}
});
if (myVariable === true) {
doSomething();
}
if (myVariable === false) {
doSomethingElse();
}
myVariable
注入其中之一。 方法2:在注入腳本文件之前注入設置變量的代碼:
chrome.tabs.executeScript(tab.id, { code: "var myVariable=" + myVariable.toString() }, function(results) { chrome.tabs.executeScript(tab.id, {file: "zen-reading.js"}, function(results) { .......... }); });
如果不是布爾值/數字,請使用JSON:
code: 'var myVariable=JSON.parse("' + JSON.stringify(myVariable) + '")'
方法3:一次注入文件並使用消息傳遞 。 這稍微復雜一點,因為您將需要首先檢查(使用executeScript
來查找您的內容腳本應定義的變量)活動選項卡中是否注入了內容腳本,而如果用戶導航到另一個URL,則可能不是這種情況在同一標簽中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.