2013-03-02 4 views
0

Я успешно создал мое первое расширение Chrome. Теперь он запускается только при щелчке на значке расширения вместо фона, и это здорово. Тем не менее, я хотел бы добавить дополнительные действия для моего расширения. Я пытался использовать всплывающее расширение для запуска других функций, но я не могу заставить его работать. Это не должно быть так, поэтому я открыт для предложений. Я не хочу использовать контекстные меню. Я хочу, чтобы люди нажимали на значок расширения и показывали им «меню».Добавление меню значков в расширения Chrome

Прямо сейчас мое расширение предупреждает только сообщение, когда оно находит действительную страницу (from mydomain.com), и находит скрытое поле с именем «returnURL». Он предупреждает о значении.

Я хочу, чтобы добавить возможность щелчка по значку, но вместо этого отобразите меню параметров с несколькими параметрами.

Что-то вроде этого:

Нажмите на значок расширения и показаны два варианта

  • Получить URL Response (этот вариант запуска текущей функциональности я есть сейчас)
  • что-то другое (Так Я мог бы выполнить другую функцию на загруженной странице )

... и больше вариантов, если мне нужно было добавить их на fu я использую расширение моего расширения.

Как изменить расширение, чтобы сделать это.

Вот мой код:

manifest.json



    { 
      "name": "Get Response URL", 
      "version": "1.0", 
      "manifest_version": 2, 
      "browser_action": { 
      "default_icon": "mkto_icon.png", 
      "name": "Click to get URL" 
      }, 
      "background":{ 
       "scripts":["background.js"] 
      }, 
      "permissions":["http://mydomain.com/*"] 
    } 

background.js



    chrome.browserAction.onClicked.addListener(function (tab) { //Fired when User Clicks ICON 
     if (tab.url.indexOf("http://mydomain.com/") != -1) { // Inspect whether the place where user clicked matches with our list of URL 
      chrome.tabs.executeScript(tab.id, { 
       "file": "contentscript.js" 
      }, function() { // Execute your code 
       console.log("Script Executed .. "); // Notification on Completion 
      }); 
     } 
    }); 

contentscript.js



    if (document.getElementsByName("returnURL")){ 
    alert("\nThe Response URL on this form is:\n\n" + document.getElementsByName("returnURL")[0].value); 
    } 

Я следовал документации я нашел на T он сайт разработчика Google Extensions, но я не мог заставить его работать. Ваша помощь очень ценится.

ответ

1

У вас не может быть настоящего меню с расширением Chrome. Тем не менее, вы можете показать HTML-страницу при нажатии кнопки (всплывающее окно). Вы можете стилизовать этот HTML страницы таким образом, что выглядит похоже на меню:

"browser_action": { 
    "default_icon": "mkto_icon.png", 
    "default_title": "Click here to open menu", 
    "default_popup": "popup.html" 
}, 

Добавить файл popup.html вам расширение и независимо содержимое, которое требуется, чтобы показать. Скрипты, загружаемые всплывающей страницей, могут загружать сценарии содержания и связываться с ними так же, как и на фоновом изображении.

Справочно: browser actions documentation.