Как добавить лайтбокс в контекстное меню в расширении Chrome
Я строю расширение Chrome на основе контекстного меню. Когда пользователь выбирает ссылку или выделяет текст, появляется расширение ("контексты":["выбор","ссылка"]...).
Как только пользователь щелкнет по желаемой опции, как мне узнать, как вызвать эффекты лайтбокса или слимбокса, чтобы создать фрейм с результатами поиска на основе переданного параметра?
Пример: выделенный текст "hello world" на любой странице при просмотре в Chrome >> щелкните правой кнопкой мыши, чтобы отобразилось мое расширение контекстного меню >> выбранный вариант 1 >> появится лайтбокс или слимбокс и появится фрейм, отображающий результаты поиска Google для выбранного текст ранее (привет мир).
1 ответ
Вот краткое изложение того, как это сделать:
- Запросить необходимые разрешения, такие как разрешение на использование сценариев содержимого
- Добавьте пункт контекстного меню.
В обработчике onclick для элемента контекстного меню отправьте сообщение в скрипт содержимого, например:
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { chrome.tabs.sendMessage(tabs[0].id, {"action": "startLightbox"}); });
Пусть скрипт содержимого добавит лайтбокс на страницу.
chrome.runtime.onMessage.addListener( function(request, sender, sendResponse) { if ( request.action == "startLightbox" ) { //code for lightbox here } })
Я сталкивался с вашим вопросом, когда пытался сам разобраться. Как только я понял это, я думал, что поделюсь этим. Вот мой учебник с подробными инструкциями.