2016-12-07 4 views
1

Я пытаюсь создать контекстное меню контекстного меню для Chrome. Я хочу, чтобы выделить текст, щелкнуть правой кнопкой мыши, затем открыть новую вкладку, используя URL-адрес, определенный выделенным текстом.Щелкните контекстное меню правой кнопкой мыши для Chrome

У меня есть манифест (хотя я не уверен, что я сделал фоновую часть справа):

{ 
    "manifest_version": 2, 
    "name": "ClickMenu", 
    "version": "1.0", 

    "description": "A right-click context menu", 
    "icons": { 
     "16": "icons/icon-16.png", 
     "48": "icons/icon-48.png", 
     "128": "icons/icon-128.png" 
    }, 

    "permissions": [ "contextMenus" ], 

    "background": { 
     "scripts": ["contextMenu.js"], 
     "persistent": false 
     } 
    } 

И в contextMenu.js:

function MenuContext(contextInfo, tab) { 
    chrome.tabs.create({ 
    'url' : 'https://myurl.com/' + contextInfo.selectionText + '/launch' 
    }); 
} 

    var contextId = chrome.contextMenus.create({ 
     'title' : 'Launch this', 
     'contexts' : [ 
      'selection' 
     ], 
     'onclick' : MenuContext 
    }); 

Это не работает. Я могу загрузить расширение, но нет контекстного меню или функциональности.

Вы видите, что я сделал неправильно?

+0

Это, похоже, работает на меня. [Контекстные меню в расширениях Chrome] (http://stackoverflow.com/questions/13783500/context-menus-in-chrome-extensions) –

ответ

1

Вы создаете страницу мероприятия (в вашем манифесте указывается "persistent": false).

На странице событий вы создаете три изменения при создании пункта контекстного меню.

  1. Пропустить параметр идентификатора строки.
  2. Используйте обратный вызов chrome.contextMenus.onClicked вместо параметра onclick.
  3. Создайте их в chrome.runtime.onInstalled события.

Для получения дополнительной информации - Event pages best practices.

(Кстати - на странице событий не сохраняются данные в переменных).

(Прошу прощения за мой английский ...)

Смежные вопросы