我很难理解如何在点击chrome扩展图标时运行一些JS.我想例如,当点击图标时,从文档中读取一些属性.
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab",
"clipboardWrite"
]
Run Code Online (Sandbox Code Playgroud)
在popup.html中,我有以下内容:
chrome.browserAction.onClicked.addListener(function(tab) {
alert('working?');
});
Run Code Online (Sandbox Code Playgroud)
但是,这似乎不起作用.我尝试在背景脚本(在manifest.json中)内部使用JS,但这也不起作用.
我很好奇你是如何在承诺数组的Promise地图中展平结果的.我有一个函数Promise.maps一组值,他们自己承诺(需要解决)并返回一个数组.所以,我得到了类似的东西:[[1,2,3],[1,2,3]等等.]之后我一直在使用lodash/underscore ._flatten,但是,我确定有一个清洁方法.
return Promise.map(list, function(item) {
return new Promise(function(res, rej) {
return res([1, 2, 3]);
});
});
Run Code Online (Sandbox Code Playgroud) 所以,我知道你不能将后台脚本和默认弹出窗口放在一起.如果是这样,我怎么能有类似于默认弹出窗口(当你点击扩展名的图标时出现一些简单的HTML)并让后台脚本修改该弹出窗口的内容?
这是manifest.json
"browser_action": {
"default_title": "Mark this position!",
"default_icon": "icon.png"
},
"background": {
"scripts": ["background.js"],
"persistent": false
},
"content_scripts": [
{
"matches": [
"http://*/*",
"https://*/*"
],
"js": ["content.js"]
}
],
Run Code Online (Sandbox Code Playgroud)