Как разрешить пользователю редактировать URL-адрес, на который перенаправляется моя пользовательская кнопка в контекстном меню?

#javascript #html #google-chrome-extension

#javascript #HTML #google-chrome-расширение

Вопрос:

Я сделал свое первое расширение Chrome — кнопку контекстного меню, которая открывает выделенный текст в ссылке.

Что я хочу сделать дальше, так это позволить пользователю расширения редактировать URL-адрес, в конце которого будет использоваться выделенный текст.

Думайте об этом как о выделенном щелчке правой кнопкой мыши и кнопке контекстного меню «Поиск»выделено» в Google однако я хочу, чтобы пользователь разрешил вручную вводить URL-адрес.

Как настроить страницу простых параметров расширения и перенаправить входной URL на script.js код?

До сих пор я смог создать только manifest.json и script.js где я сам ввел URL-адрес, тогда как цель состоит в том, чтобы позволить пользователю вводить URL-адрес.

Что у меня есть до сих пор:

 chrome.tabs.create({  
    url: "https://en.wikipedia.org/wiki/"   info.selectionText
  });
chrome.contextMenus.create({
  title: "Search: %s", 
  contexts:["selection"], 
  onclick: getword
  

Допустим, пользователь хочет получить быстрый доступ к выделенному тексту в Википедии.

  1. Настраивает «https://en.wikipedia.org/wiki /» в настройках расширения.
  2. Выделяет «Онтарио».
  3. Щелкает правой кнопкой мыши и выбирает кнопку расширения.
  4. Chrome открывает новую вкладку «https://en.wikipedia.org/wiki/Ontario «.

Комментарии:

1. Вы должны иметь возможность использовать собственное хранилище для сохранения настроек на странице параметров и чтения из него в вашем действии контекстного меню.

2. Страница параметров расширения отображается на отдельной вкладке, что является довольно разрушительным UX. Гораздо лучший подход — показать диалоговое окно прямо внутри страницы, что вы можете сделать в скрипте содержимого, используя стандартный материал DOM после того, как ваш фоновый скрипт отправит сообщение на вкладку через chrome.tabs.SendMessage.