为了账号安全,请及时绑定邮箱和手机立即绑定

保留不同选项卡之间的切换

保留不同选项卡之间的切换

慕丝7291255 2021-04-08 13:15:51
我正在开发一个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。我在这里做错了什么?这是我尝试做的错误方法吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信