我知道这个问题在这个网站上已经问了很多遍了,例如this post。但是,Chrome升级速度如此之快,看来这些解决方案不再适用于最新版本。我还检查了官方文档,似乎也不起作用。
这是我的文件:
manifest.json
{
"name": "Try Context Menu",
"version": "0.0.1",
"permissions": [ "tabs", "contextMenus", "http://*/*", "https://*/*" ],
"background": {
"scripts": [ "background.js" ],
"persistent": false
},
"icons": {
"16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png"
},
"manifest_version": 2
}
background.js
function clickHandler() {
alert('great');
}
chrome.contextMenus.create({
"id": "qwertyuiop",
"title": "Click Me",
"contexts": ["page", "selection", "image", "link"],
"onclick" : clickHandler
});
chrome.contextMenus.onClicked.addListener(clickHandler);
我仔细阅读了几个示例扩展的源代码。
由于设置"persistent"
为false
,因此扩展程序与事件页面一起运行。因此,我的代码通过onclick
从以下参数对象中删除来工作chrome.contextMenus.create
:
chrome.contextMenus.create({
"id": "qwertyuiop",
"title": "Click Me",
"contexts": ["page", "selection", "image", "link"]
});
这是事件页面文档中的注释:
- 如果您使用的是上下文菜单API,请将字符串id参数传递给
contextMenus.create
,并使用contextMenus.onClicked
回调而不是onclick
参数传递给contextMenus.create
。
真正奇怪的是,该注释是根据最佳实践归档的,而如果我不这样做,则该扩展名甚至都无法工作。实际上这是必须做的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句