Книга рецептов
На этой странице собраны часто запрашиваемые функции, которые не могут попасть в UI по концептуальным причинам.
ES6 Модули
Между правилами нельзя импортировать и экспортировать ES6 модули, но можно использовать модули из интернета, например таким образом:
js
;(async () => {
const { module } = await import("https://...")
// Ваш код
})()Загрузка модулей из версии 2.x
В версии 3.x+ модули кешируются после первой загрузки и обновляются только вручную из окна редактирования модуля. Они больше не загружаются из DOM дерева сайта, а встраиваются напрямую в скрипт.
Если нужна загрузка из DOM или внешний скрипт требует частого обновления, то лучше не использовать функционал модулей в расширении, а загружать его напрямую через JS:
js
Promise.allSettled([
loadScript("https://...js"),
loadScript("https://...js"),
]).then(() => {
// Ваш код
})
function loadScript(src) {
return new Promise(function (resolve, reject) {
const script = document.createElement("script")
script.src = src
script.onload = resolve
script.onerror = reject
document.head.append(script)
})
}