我正在開發一個Google Chrome擴展程序,您應該可以使用擴展程序工具欄中的符號打開和關閉該功能。此切換應該是通用的,這意味著無論您在何處打開或關閉它,當前狀態都將保留在任何地方。無論您在哪個標簽頁或窗口中,狀態都隨處可見。就我們的示例而言,我們應該寫“我在!”。打開控制臺,然后按A鍵。如果關閉了電源,然后按A,則會顯示“我關閉了!”。manifest.json:{ "name": "Test Extension", "version": "1.0", "manifest_version": 2, "description": "Just a test for Stack Overflow.", "browser_action": { "default_icon": "images/icon.png" }, "background": { "scripts": ["background.js"] }, "content_scripts": [ { "matches": ["<all_urls>"], "js": ["content.js"] } ]}background.js:var extensionMode = true;chrome.browserAction.onClicked.addListener(function(tab) { extensionMode = !extensionMode; if(extensionMode) { chrome.browserAction.setIcon({ path : "images/icon.png" }); } else { chrome.browserAction.setIcon({ path : "images/icon_disabled.png" }); } let msg = { extensionMode: extensionMode } chrome.tabs.sendMessage(tab.id, msg);});content.js:var extensionMode = true;chrome.runtime.onMessage.addListener(gotMessage);function gotMessage(message, sender, sendResponse) { extensionMode = message.extensionMode;}onkeydown = onkeyup = function(e){ if(extensionMode) { if(event.keyCode == 65) { // A console.log("I'm on!"); } } else { if(event.keyCode == 65) { // A console.log("I'm off!"); } }}上面的代碼在您停留在選項卡中時起作用,但在切換時不起作用...圖標將保持禁用狀態,但是extensionMode實際上會恢復為true。我在這里做錯了什么?這是我嘗試做的錯誤方法嗎?
保留不同選項卡之間的切換
慕絲7291255
2021-04-08 13:15:51