簡體   English   中英

單擊Chrome擴展程序的圖標后如何更改contentscript變量?

[英]How to change a contentscript variable on click on the icon of a Chrome extension?

我想通過單擊Chrome擴展程序的圖標來更改內容腳本文件中的變量。 你知道我該怎么做嗎?

這是我的代碼示例:

background.js:

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;
  }

});

contentscript.js:

if (myVariable === true) {
  doSomething();
}

if (myVariable === false) {
  doSomethingElse();
}
  • 方法1:將內容腳本一分為二,然后根據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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM