如何在地址栏中显示Chrome扩展程序PageAction图标?

Chr*_*ong 8 google-chrome google-chrome-extension

我正在尝试构建一个Chrome扩展程序,它在地址栏中显示为一个图标,单击此选项后,会在页面上的所有元素上设置contenteditable = true,然后再次单击时将它们设置回contenteditable = false.

但是,我陷入了第一道障碍......图标甚至没有显示在地址栏中.

这是我的清单文件:

 {
  "name": "Caret",
  "version": "1.0",
  "description": "Allows you to edit the content on any webpage",
  "page_action": {
    "default_icon": "icon.png"
  },
  "content_scripts": [
    {
      "matches": ["http://*/*"],
      "js": ["jquery.js", "caret.js"]
    }
  ],
  "permissions" : [
    "tabs"
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是caret.js脚本:

    chrome.browserAction.onClicked.addListener(function(Tab) {

    $("*").attr("contenteditable",true);

}); 
Run Code Online (Sandbox Code Playgroud)

这是我第一次尝试扩展,所以很可能是一个新手的错误,但我非常感谢任何帮助或建议!

Chr*_*ong 16

好的,结果我需要使用chrome.pageAction.show(tab.id);,这意味着我需要获取当前选项卡的ID,这是通过以下方式实现的:

chrome.tabs.getSelected(null, function(tab) {

    chrome.pageAction.show(tab.id);


});
Run Code Online (Sandbox Code Playgroud)

事实证明你不能在内容脚本中使用chrome.tabs,所以我不得不切换到使用背景页面.