РЕДАКТИРОВАТЬ: здесь я добавил живую версию проблемы: https://www.lieksa.info/demot/stackoverflow/blob_issue/problem.html
Я пытаюсь использовать Javascript для предварительного просмотра изображений внутри iFrame, чтобы показать пользователю, как изображение выглядит как. Изображения находятся в подкаталоге, например: «kuvat / kuva0.jpg».
Если пользователь нажимает кнопку «предварительный просмотр», я беру сгенерированные html данные (html источник данные в строковом формате) и превратите его в объект Blob и используйте его в качестве источника iframe для предварительного просмотра.
Сгенерированный html и сами изображения работают, если, например, скопировать и вставить в в новый файл. html и отображается через него. Изображения и все остальное отображаются красиво.
Проблема в том, что изображения в подкаталоге, на которые есть ссылка с помощью «sr c» внутри img html -tag, не работают после преобразования в исходный код iFrame. Что происходит с путями к источникам изображений и ссылками во время процесса Blob и URL.createObjectURL (blob)?
Создано html Исходный код включает изображения следующим образом
<img src="kuvat/kuva0.jpg" alt="slideshow image">
Ниже процесс Blob и iframe:
var html_source = document.getElementById("source_container").value;
var blob = new Blob([html_source], {type: "text/html"});
document.getElementById("iframe_container").src = URL.createObjectURL(blob);
Я даже попытался передать только тег изображения в объект Blob, а также протестировать объект File. Но ни один из них не работал:
var blob = new Blob(['<img src="kuvat/kuva0.jpg" alt="slideshow image">'], {type: "text/html"});
var file = new File(['<img src="kuvat/kuva0.jpg" alt="slideshow image">'], "index.html", { type: "text/plain"});
document.getElementById("preview_container").src = URL.createObjectURL(blob);
// or
document.getElementById("preview_container").src = URL.createObjectURL(file);