Показать HTML-файл, содержащийся в расширении

Я создаю блокировщик веб-сайта: после посещения заблокированного веб-сайта браузер отображает новую HTML-страницу с надписью "веб-сайт заблокирован". Новая HTML-страница сохраняется в моем расширении Chrome как message.html. Есть ли способ отобразить message.html в браузере? Если нет, я просто воспользуюсь скриптом контента, чтобы добавить немного JavaScript.

1 ответ

Решение

Обновление вкладки для отображения message.html

Предполагая, что все следующее верно:

  • Вы делаете это из скрипта, работающего в фоновом контексте.
  • Вы хотите обновить уже существующую вкладку для отображения message.html
  • Вкладка ID, которую вы хотите обновить tabId,
  • Ваш message.html находится в том же каталоге, что и ваш manifest.json.

Вы можете сделать следующее, которое использует chrome.tabs.update() ( Firefox docs), чтобы изменить вкладку с идентификатором, содержащимся в tabId для отображения вашего message.html:

chrome.tabs.update(tabId ,{url:'/message.html'});

или же

chrome.tabs.update(tabId ,{url:chrome.runtime.getURL('/message.html'}));

Если вы меняете текущую выбранную вкладку в активном окне, то tabId не требуется, и вы можете опустить этот аргумент.

Создать вкладку для отображения message.html

Предполагая, что все следующее верно:

  • Вы делаете это из скрипта, работающего в фоновом контексте.
  • Вы хотите создать новую вкладку для отображения message.html
  • Ваш message.html находится в том же каталоге, что и ваш manifest.json.

Ты можешь использовать chrome.tabs.create() ( Firefox docs), чтобы создать новую вкладку для отображения message.html:

chrome.tabs.create({url:'/message.html'});

или же

chrome.tabs.create({url:chrome.runtime.getURL('/message.html'}));

Откройте message.html в новом окне

Предполагая, что все следующее верно:

  • Вы делаете это из скрипта, работающего в фоновом контексте.
  • Вы хотите создать новое окно для отображения message.html
  • Ваш message.html находится в том же каталоге, что и ваш manifest.json.

Ты можешь использовать chrome.windows.create()( Firefox docs), чтобы открыть новое окно для отображения message.html:

chrome.windows.create({url:'/message.html'});

или же

chrome.windows.create({url:chrome.runtime.getURL('/message.html'}));
Другие вопросы по тегам