Создайте веб-сайт, который использует модули ES, но может быть сохранен локально.Html

Программисты Html
Ответить
Anonymous
 Создайте веб-сайт, который использует модули ES, но может быть сохранен локально.

Сообщение Anonymous »

Можно ли создать одностраничный веб-сайт, размещенный на статическом хостинге (без пользовательских заголовков и т. д.), который использует модули ES во внешних файлах .js и при этом может быть сохранен как «Веб-сайт, завершенный» в браузере и работать локально?
При использовании классического JS или при переносе модулей ES это работает, если вы проявите некоторую осторожность (например, имейте в виду, что браузер может хранить DOM в текущем состоянии, а не в исходном, и убедитесь, что на все изображения есть ссылки, даже если они еще не показаны).
Однако с модулями ES я вижу две проблемы. Когда на них есть ссылка в «importmap», они вообще не загружаются. И когда на них ссылаются как на отдельные теги , они загружаются, но не могут быть загружены из-за политики CORS (которая запрещает загрузку модулей ES из URI файла).
Есть ли обходной путь, или мне придется смириться с тем фактом, что я могу либо использовать модули ES в браузере (тем самым нарушая функцию «Сохранить страницу как»), либо нужно перенести всю страницу в классический JavaScript, хочу ли я, чтобы он продолжал работать после загрузки?
Минимальный пример

Код: Выделить всё

module.js
:[/b]

Код: Выделить всё

export function getTitle() {
return "The answer is 42";
}

Код: Выделить всё

index.html
:[/b]

Код: Выделить всё




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


При размещении этого файла с помощью npx http-server или python3 -m http.server и последующей загрузке его как веб-страницы с помощью Firefox, Chrome или Edge модуль сценария отсутствует. Также при загрузке в формате MHT с помощью Chrome или Edge (Firefox не имеет такой опции) модуль сценариев не включается. При открытии этого загруженного файла как URL-адрес файла (или двойного щелчка по нему в проводнике) в любом из указанных браузеров страница не работает.
Поведение при загрузке с http-сервера:
  • Метки (заголовок и h1) заменяются содержимым из модуля.
  • При нажатии на метку отображается предупреждение с содержимым из модуль
Поведение при сохранении в виде файла и загрузке с диска (протокол файла):
  • Метки уже заменены в сохраненном HTML-файле
  • Ошибка JavaScript из-за сбоя CORS при загрузке модуля
  • Клик не работает так как модуль не загружается
Ожидание (или хотя бы надежда)
  • Сохраненный файл ведет себя так же, как онлайн-версия (размещена на http-сервере).
Ожидаемые ответы (возможные варианты, возможно правильный ответ другой)

[*]Это никогда не будет работать, это не ошибка, и обходного пути нет (бонусные баллы, если можно ссылаться на такие источники, как отклоненные ошибки или спецификации)
[*]Это признанная ошибка (с номером ошибки) [я не смог ее найти]
[*]Вы можете изменить файл тем или иным способом, и он будет работать.


Подробнее здесь: https://stackoverflow.com/questions/797 ... ed-locally
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»