Существует несколько методов.
Предоставление ресурсов для сценария содержимого с помощью web_accessible_resources
Тогда сценарий содержимого может использовать их почти напрямую (используя * 1028). * .runtime.getURL ) в изображениях, видеороликах, фреймах или прочитайте содержимое файлов html, используя fetch()
и XMLHttpRequest
.
Если ваш пользовательский интерфейс сложный, тогда go с подходом iframe - его содержимое будет полноценной средой расширения, такой как всплывающее окно browser_action со своим собственным chrome: // расширением URL.
Недостатком является то, что ваши ресурсы могут быть прочитаны любым сайтом напрямую, и сайты могут легко обнаружить присутствие вашего расширения.
Использовать обмен сообщениями и читать ресурсы с помощью фонового скрипта
content . js:
chrome.runtime.sendMessage({cmd: 'getTemplate'}, html => {
document.body.insertAdjacentHTML('beforeend', html);
});
background. js:
chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
if (msg.cmd === 'getTemplate') {
fetch('/templates/foo.html').then(r => r.text()).then(sendResponse);
return true;
}
});
Использовать ваш компилятор / компоновщик
Существуют плагины для основных компоновщиков / компиляторов, которые позволяют встроить содержимое файла в другой файл, чтобы вы могли включить шаблон HTML в сценарий скомпилированного содержимого в виде буквенной строки.