可能重复:
Port error while changing chrome extension from manifest v1 to v2
我正在尝试为我的网站开发一个插件。我的用户需要能够右键单击任何网页上的任何超链接,然后点击Chrome上下文菜单中的链接,该链接会将他们带到我的网站以执行操作。
我的插件已完成,但每次尝试测试时,只要点击超链接,该链接就不会出现在Chrome上下文菜单中。
这是我的档案:
manifest.jason
{
"manifest_version": 2,
"background_page": "background.html",
"description": "Decrypt Short URLs.",
"icons": {
"128": "icon-128.png",
"16": "icon-16.png",
"48": "icon-48.png"
},
"minimum_chrome_version": "8.0.0.0",
"name": "xxxx.xxx",
"permissions": [ "http://*/*", "https://*/*", "tabs", "contextMenus" ],
"version": "1.0"
}
background.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script>
function handleClick() {
return function(info, tab) {
var url = 'http://xxx.xxx/api.php?url=' + info.linkUrl + '&source=chromeextension'
// Create a new tab to the results page
chrome.tabs.create({ url: url, selected:true });
};
};
chrome.contextMenus.create({
"title" : "Decrypt this Link",
"type" : "normal",
"contexts" : ["link"],
"onclick" : handleClick()
});
</script>
</body>
我将不胜感激。
答案 0 :(得分:1)
我猜问题出在您的清单文件中。您使用清单版本2,但您的背景页面在清单版本1中声明。
您应该尝试更改manifest.json的这一部分:
"background_page": "background.html",
关于这一个:
"background": {
"scripts": ["background.js"]
},
并将所有后台代码放入background.js
您可以在此处阅读更多信息:background_pages
P.S。抱歉,Mr. Rob W已在主要问题的评论中指出此问题。