点击Chrome展开的图标

时间:2015-07-09 03:18:00

标签: google-chrome-extension

我很难理解如何在点击Chrome扩展程序图标时运行一些JS。我想例如,当点击图标时,从文档中读取一些属性。

"browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
},
"permissions": [
    "activeTab",
    "clipboardWrite"
]

在popup.html中,我有以下内容:

chrome.browserAction.onClicked.addListener(function(tab) {
    alert('working?');
});

但是,这似乎不起作用。我尝试在后台脚本(在manifest.json中)使用上面的JS,但这也不起作用。

1 个答案:

答案 0 :(得分:14)

您可以使用两种方法:

方法1:使用后台脚本。的manifest.json:

"browser_action": {
    "default_icon": "icon.png",
},
"permissions": [
    "activeTab",
    "clipboardWrite"
],
"background": {
    "persistent": false,
    "scripts": ["background.js"]
}

(您也可以使用"page": "background.html"代替"scripts"。)

background.js:

chrome.browserAction.onClicked.addListener(function(tab) {
    alert('working?');
});

方法2:使用弹出窗口。的manifest.json:

"browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
},
"permissions": [
    "activeTab",
    "clipboardWrite"
]

popup.html:

<html>
 <head>
  <script src="popup.js"></script>
 </head>
</html>

popup.js:

alert('working?');

你的问题是你混合了两者。如果您使用browser_action.default_popup,则chrome.browserAction.onClickednever triggered。 (而且你不会想要一个名为popup.html的背景页面,因为这会引起各种混淆。)