我很难理解如何在点击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,但这也不起作用。
答案 0 :(得分:14)
您可以使用两种方法:
"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?');
});
"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.onClicked
为never triggered。 (而且你不会想要一个名为popup.html
的背景页面,因为这会引起各种混淆。)