htmlページ、css、およびjsディレクトリを含むファイルを解凍します。私はこれを一時的に解凍し、htmlをiFrameで表示することをお勧めします。私は働いているjszipを使用しています。読み込むhtmlがありますが、iFrameにイメージ、js、cssの各フォルダを追加するにはどうすればいいですか?ここでファイルを一時的に解凍してブラウザ内のコンテンツを表示します。
私がこれまで持っているものです...
<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>
これはHTMLを取得しますが、JSのCSSと画像ファイルが表示されません。私は何らかの偽のルーティングをする必要があると信じていますが、どうすればそのことができるのか分かりません。ご協力いただきありがとうございます。
かなり難しいです。サポートされている唯一の方法は、サーバーを使用するか、ユーザーにHTMLページを手動でダウンロード、解凍、および開くことです。最近までこれが唯一の選択肢でした。互換性を制限したい場合は、[サービスワーカー](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers)を使用することができます。 –
あなたが試すことができるのは、サイトのルートに一時フォルダを作成することです。すべてのファイルを解凍します。 iframeを開いてwww.mysite.com/temporary-folderを開きます。テストされていないため、ページを再読み込みする必要があります。あなたがアップロードしているものについてユーザーを信頼する必要があることは言うまでもない。 –