Как добавить лайтбокс в контекстное меню в расширении Chrome

Я строю расширение Chrome на основе контекстного меню. Когда пользователь выбирает ссылку или выделяет текст, появляется расширение ("контексты":["выбор","ссылка"]...).

Как только пользователь щелкнет по желаемой опции, как мне узнать, как вызвать эффекты лайтбокса или слимбокса, чтобы создать фрейм с результатами поиска на основе переданного параметра?

Пример: выделенный текст "hello world" на любой странице при просмотре в Chrome >> щелкните правой кнопкой мыши, чтобы отобразилось мое расширение контекстного меню >> выбранный вариант 1 >> появится лайтбокс или слимбокс и появится фрейм, отображающий результаты поиска Google для выбранного текст ранее (привет мир).

1 ответ

Вот краткое изложение того, как это сделать:

  1. Запросить необходимые разрешения, такие как разрешение на использование сценариев содержимого
  2. Добавьте пункт контекстного меню.
  3. В обработчике onclick для элемента контекстного меню отправьте сообщение в скрипт содержимого, например:

    chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
        chrome.tabs.sendMessage(tabs[0].id, {"action": "startLightbox"});
     });
    
  4. Пусть скрипт содержимого добавит лайтбокс на страницу.

    chrome.runtime.onMessage.addListener(
       function(request, sender, sendResponse) {
          if ( request.action == "startLightbox" ) {
             //code for lightbox here
          }
        })
    

Я сталкивался с вашим вопросом, когда пытался сам разобраться. Как только я понял это, я думал, что поделюсь этим. Вот мой учебник с подробными инструкциями.

Другие вопросы по тегам