Chrome扩展程序:使用chrome.tabs和chrome.contextMenus

时间:2011-08-24 03:10:14

标签: google-chrome-extension

我正在尝试创建一个Chrome扩展程序,用于清理URL并在新选项卡中打开该URL。但是我一直收到与this (content_script error)相同的错误。我遵循了指示,但我相信我只是不明白我哪里出错了。这是完整的代码:

的manifest.json

{
  "name": "Link scrub",  
  "description": "Removes redirectors from links", 
  "version": "0.1",
  "permissions": ["contextMenus", "tabs"],
  "background_page" : "background.html"
  "content_scripts": [{
    "js" : ["linkscrub.js"]
  }];
}    

linkscrub.js

chrome.contextMenus.create({
    "title" : "Link Trap",
    "type" : "normal",
    "contexts" : ["link"],
    "onclick" : modifyLink
});
 function modifyLink(info, tab) {
    chrome.extension.sendRequest({
        "nurl" = info.linkURL,
        function(response) {
            console.log("linkscrub failed: " + response.farewell)
            }
    });
}

background.html

<script>
chrome.extension.onRequest.addListener(
  function(request, sender, sendResponse) {
    link = "";
    link = sender.nurl;
    link = link.match("url=\b(.*?)&link");
    chrome.tabs.create({
        "url": link,
        "selected" : false
    });
    if(chrome.extension.lastError) 
        sendResponse({farewell : chrome.extension.lastError.message});
    else
        sendResponse({farewell : "Success")};    
  });
<script>

1 个答案:

答案 0 :(得分:3)

它会抛出错误,因为您无法在内容脚本中使用chrome.contextMenus.* API。

此任务不需要内容脚本,只需将linkscrub.js中的所有内容移动到您的后台页面中(您也不需要这些请求)。