Internet Explorer(すべてのバージョン)は、名前を付けて保存コマンドを使用して保存されたバージョンを最初の読み込み時にWebページの状態に戻すと、 。これは、アプリケーションの現在の状態のスナップショットを保存しようとしているjavascriptアプリケーションに影響します。完全なウェブサイトを保存する - Internet Explorerとjavascriptによって生成されたコード
この簡単な例では、ページを読み込むと乱数が表示されます。このページをFirefoxまたはChromeに保存すると、保存されたドキュメントにその番号がFIXEDされます(次回開くときに.generateRandomNumberスパンが削除されて上書きされるため、JSは実行されません)。
<!DOCTYPE HTML>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
jQuery(function($) {
if ($('.generateRandomNumber').length) {
var randomNumber = Math.round(Math.random() * 1000);
$('.generateRandomNumber').remove();
$('body').html(randomNumber);
}
});
</script>
</head>
<body>
<span class="generateRandomNumber"></span>
</body>
</html>
また、IEのコンソールから次の手順を実行して動作を確認することができます。
var w = window.open();
w.document.body.innerHTML = "Hello world. Please save me";
別の簡単な例としては、(IE devのコンソールから)任意のページに次のスクリプトを実行することです。それを実行し、HTMLが消去されるのを見て、それを保存し、保存されたバージョンを開き、元のサイトが再現するのを見ます。
document.body.innerHTML = "";
新しい文書を保存し、次に開くときにテキストが消えます。
私は以下のページを見直し、今どんな解決策を見つけた:
Save the document generated by javascript
すべてのヘルプははるかに高く評価されるだろう。
興味深い質問ですが、[名前を付けて保存]でページを保存することは決して形や形にはなりません。そのため、あなたはおそらく、これがブラウザ間で一貫して動作することを期待しています。 – deceze
回避策の提案はありますか?唯一の回避策はサーバーが必要で、このアプリケーションはオフラインで作業する必要があると私は考えています。 – captainclam