保存完整网站 - Internet Explorer和javascript生成的代码

时间:2012-02-09 04:36:58

标签: javascript html internet-explorer

当您使用“另存为”命令时,Internet Explorer(所有版本)似乎完全忽略对DOM所做的任何更改,在第一次加载时将保存的版本还原为网页的状态。这会影响您尝试保存应用当前状态快照的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开发控制台)。运行它,观看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/

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

如果您点击F12,开发者工具将会打开。单击开发人员工具窗口中的保存按钮,它将当前版本的DOM保存为HTM文件。

您必须单独保存其他资源(图片,js,css等)。