Ich möchte eine Datei entpacken, die eine HTML-Seite, CSS und JS-Verzeichnisse enthält. Ich möchte dies vorübergehend entpacken und den HTML-Code in einem iFrame anzeigen, vorzugsweise. Ich benutze jszip, das funktioniert. Ich habe den HTML-Code geladen, aber wie füge ich die Bilder-, JS- und CSS-Ordner in den iFrame ein? HierEntpacken Sie vorübergehend eine Datei, um Inhalte in einem Browser anzuzeigen
ist das, was ich bisher ...
<div id="jszip_utils"></div>
<iframe id="iframe"></iframe>
<script type="text/javascript">
function showError(elt, err) {
elt.innerHTML = "<p class='alert alert-danger'>" + err + "</p>";
}
function showContent(elt, content) {
elt.innerHTML = "<p class='alert alert-success'>loaded !<br/>" +
"Content = " + content + "</p>";
}
var htmltext = JSZipUtils.getBinaryContent("/zip/myWebsite.zip", function (err, data) {
var elt = document.getElementById('jszip_utils');
if (err) {
showError(elt, err);
return;
}
try {
JSZip.loadAsync(data)
.then(function (zip) {
for(var name in zip.files) {
if (name.substring(name.lastIndexOf('.') + 1) === "html") {
return zip.file(name).async("string");
}
}
return zip.file("").async("string");
})
.then(function success(text) {
$('#iframe').contents().find('html').html(text);
showContent(elt, text);
}, function error(e) {
showError(elt, e);
});
} catch(e) {
showError(elt, e);
}
});
</script>
Das die HTML bekommt, aber die js css und Bilddateien werden nicht angezeigt. Ich glaube, ich muss ein falsches Routing machen, aber ich bin mir nicht sicher, wie ich das machen könnte. Danke für Ihre Hilfe.
Ziemlich schwierig. Die einzige weit verbreitete Methode ist die Verwendung eines Servers oder das manuelle Herunterladen, Entpacken und Öffnen der HTML-Seite durch den Benutzer. Bis vor kurzem war das die einzige Option. Wenn Sie die Kompatibilität einschränken möchten, können Sie jetzt [service worker] (https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers) verwenden. –
Was Sie ausprobieren können, ist: Erstellen Sie einen temporären Ordner im Stammverzeichnis Ihrer Site. Entpacken Sie alle Dateien dort. Richten Sie den iframe auf www.mysite.com/temporary-folder. Nicht getestet und erfordert möglicherweise das erneute Laden der Seite. Natürlich müssen Sie den Benutzern vertrauen, was sie hochladen –