当您使用“另存为”命令时,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
任何帮助将不胜感激。
最佳答案
如果按 F12,开发人员工具将打开。单击开发人员工具窗口中的“保存”按钮,它将把当前版本的 DOM 保存为 HTM 文件。
您必须单独保存其他资源(图像、js、css 等)。
关于javascript - 保存完整网站 - Internet Explorer 和 javascript 生成的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9205493/