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

标签 javascript html internet-explorer

当您使用“另存为”命令时,Internet Explorer(所有版本)似乎完全忽略对 DOM 所做的任何更改,将保存的版本恢复为首次加载时网页的状态。这会影响您尝试保存应用程序当前状态快照的 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

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

任何帮助将不胜感激。

最佳答案

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

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

关于javascript - 保存完整网站 - Internet Explorer 和 javascript 生成的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9205493/

相关文章:

javascript - 在对象数组javascript中查找重复项

javascript - 将整数传递给查询时,NodeJS MySQL 返回空数组

javascript - 即使父状态更新,复选框也不会更新对子项的 react ?

javascript - 使用 Javascript 设置 cookie 以通过单击记住显示状态

css - IE7 在将 CSS 应用于动态创建的 DOM 元素时是否存在问题?

javascript - $.getJSON 在 IE10 中不工作,

javascript - 在矩形 Canvas 中创建彩虹效果

html - 可收缩的 div 或单元格表

javascript - 在其他元素的鼠标移动上移动 svg 视口(viewport)

javascript - 在 JavaScript 中,是否可以在 IE 上注册一个事件监听器来捕获页面上的所有更改、焦点和模糊事件?