Расширения Chrome: использование chrome.tabs и chrome.contextMenus - PullRequest
0 голосов
/ 24 августа 2011

Я пытаюсь создать расширение Chrome, которое очищает URL-адрес и открывает URL-адрес в новой вкладке.Однако я продолжаю получать ту же ошибку, что и this (ошибка content_script) .Я следовал инструкциям, но я считаю, что просто не понимаю, где я иду не так.Вот полный код:

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 Ответ

3 голосов
/ 24 августа 2011

Выдает ошибку, потому что вы не можете использовать chrome.contextMenus.* API внутри скрипта контента.

Вам не нужен скрипт контента для этой задачи, просто переместите все из linkscrub.js на свою фоновую страницу (также вам не понадобятся эти запросы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...