Можно ли создать одностраничный веб-сайт, размещенный на статическом хостинге (без пользовательских заголовков и т. д.), который использует модули ES во внешних файлах .js и при этом может быть сохранен как «Веб-сайт, завершенный» в браузере и работать локально?
При использовании классического JS или при переносе модулей ES это работает, если вы проявите некоторую осторожность (например, имейте в виду, что браузер может хранить DOM в текущем состоянии, а не в исходном, и убедитесь, что на все изображения есть ссылки, даже если они еще не показаны).
Однако с модулями ES я вижу две проблемы. Когда на них есть ссылка в «importmap», они вообще не загружаются. И когда на них ссылаются как на отдельные теги , они загружаются, но не могут быть загружены из-за политики CORS (которая запрещает загрузку модулей ES из URI файла).
Есть ли обходной путь, или мне придется смириться с тем фактом, что я могу либо использовать модули ES в браузере (тем самым нарушая функцию «Сохранить страницу как»), либо нужно перенести всю страницу в классический JavaScript, хочу ли я, чтобы он продолжал работать после загрузки?
Минимальный пример
module.js:
export function getTitle() {
return "The answer is 42";
}
index.html:
Test page
{ "imports": { "title": "./module.js" } }
import { getTitle } from "title";
window.addEventListener("load", function() {
document.getElementById("title").innerText = getTitle();
document.title = getTitle();
document.body.addEventListener("click", function() {
alert(getTitle());
});
});
Here comes the title
Подробнее здесь: https://stackoverflow.com/questions/797 ... ed-locally