0

可能重复:
将 chrome 扩展程序从清单 v1 更改为 v2 时出现端口错误

我正在尝试为我的网站开发一个插件。我的用户需要能够右键单击任何网页上的任何超链接,然后单击 Chrome 上下文菜单中的链接,该链接会将他们带到我的网站以执行操作。

我的插件已经完成,但每次我尝试测试它时,当右键单击超链接时,链接不会出现在 Chrome 上下文菜单中。

这是我的文件:

清单.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"
}    

背景.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>

我将不胜感激。

4

1 回答 1

1

我想问题出在您的清单文件中。您使用清单版本 2,但您的背景页面被声明为清单版本 1。

您应该尝试更改 manifest.json 的这一部分:

"background_page": "background.html",

在这个:

  "background": {
        "scripts": ["background.js"]
    },

并将所有后台代码放入 background.js

您可以在此处阅读更多信息:background_pages

PS对不起,Rob W先生已经在主要问题的评论中指出了这个问题。

于 2012-09-03T07:03:23.093 回答