2012-02-09 5 views
2

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

http://dsgdev.wordpress.com/2006/09/27/save-as-real-data-when-the-page-is-generated-with-javascript-documentwrite/

すべてのヘルプははるかに高く評価されるだろう。

+0

興味深い質問ですが、[名前を付けて保存]でページを保存することは決して形や形にはなりません。そのため、あなたはおそらく、これがブラウザ間で一貫して動作することを期待しています。 – deceze

+0

回避策の提案はありますか?唯一の回避策はサーバーが必要で、このアプリケーションはオフラインで作業する必要があると私は考えています。 – captainclam

答えて

1

F12キーを押すと、開発ツールが開きます。開発者ツールウィンドウの[保存]ボタンをクリックすると、DOMの現在のバージョンがHTMファイルとして保存されます。

他のリソース(画像、js、cssなど)を別々に保存する必要があります。

+0

提案していただきありがとうございますが、このシナリオでは実行可能な解決策ではありません。 – captainclam

+0

@captainclam、これが実行可能な解決策ではない理由の詳細を教えてください。現在のバージョンのページとそのリソースを単に保存する以外に必要なものは何ですか?もう何をお探しですか? – CodeThug

関連する問題