Значок контекстного меню не отображается в Google Chrome - PullRequest
0 голосов
/ 21 марта 2012

Я делаю тестовое расширение, но элемент не появляется в контекстном меню. Что здесь не так?

Мой файл манифеста

{
 "name": "Colour",
 "version": "1.0.1",
 "description": "Colour the background on right clicking image.",
 "offline_enabled": true,
 "permissions" : [
 "contextMenus",
   "tabs",
   "http://*/*",
   "https://*/*"
 ],
 "background_page":"background.html"
}

Мой background.html содержит этот скрипт

function getColour(info, tab){
  document.body.style.background="#456";
}

chrome.contextMenus.create({
  "type":"normal",
  "title":"Colour page",
  "contexts":["image"],
  "onclick":getColour()
});

1 Ответ

3 голосов
/ 21 марта 2012

Ссылка на функцию getColour должна быть передана.Он должен не вызываться :

function getColour(info, tab){
    document.body.style.background="#456";
}

chrome.contextMenus.create({
    "type": "normal",
    "title": "Colour page",
    "contexts": ["image"],
    "onclick": getColour // <--- Removed ()
});

Ранее , ваш код работал бы следующим образом:

  1. getColour() - Вызовы getColour.
  2. В функции нет оператора return, поэтому она возвращает undefined.
  3. chrome.contextMenu.create({ ... "onclick": undefined });- Нет обработчика событий !
...