當您使用「另存爲」命令時,Internet Explorer(所有版本)似乎完全忽略對DOM所做的任何更改,在第一次加載時將保存的版本恢復爲網頁狀態。這會影響您嘗試保存應用程序當前狀態快照的JavaScript應用程序。保存完整的網站 - Internet Explorer和JavaScript生成的代碼
在以下簡單示例中,當您加載頁面時,會出現一個隨機數字。將此頁面保存在Firefox或Chrome中會導致保存的文檔中的數字處於固定狀態(因爲下次打開它時,.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瀏覽器,開發者控制檯)。運行它,觀看HTML被擦除,保存,打開保存的版本,並看到原始網站重新出現。
document.body.innerHTML = "";
保存該新文檔,當您下次打開文檔時文本將消失。
我查看下面的頁面,但現在找到任何解決辦法:
Save the document generated by javascript
任何幫助將非常感激。
雖然一個有趣的問題,通過另存爲......保存頁面是沒有辦法,形狀或形式我意識到標準化,也沒有要求。因此,您可能僅僅希望這一功能在各個瀏覽器中保持一致。 – deceze 2012-02-09 04:53:35
任何解決方法的建議?我在想唯一的解決方法是需要一臺服務器,而這個應用必須離線工作。 – captainclam 2012-02-09 04:54:54