如何镜像包含使用 JavaScript 生成的内容的网页?

如何镜像包含使用 JavaScript 生成的内容的网页?

举个例子,我尝试保存此网页使用 Firefox 的“将页面另存为 > 网页,完成”但它没有保存评论部分(参见已保存的文件)。我认为这是因为评论是通过 JS 动态生成的。

是否有浏览器扩展或其他已实现的功能(例如 Web 服务)可以执行诸如将整个 DOM 从当前状态拉出并保存之类的操作?

打印页面为 PDF确实保存了浏览器上看到的内容,但布局全都乱了,而且我确实想保存页面的源代码和媒体(HTML、JS、CSS、gif、pngs 等)。

答案1

评论实际上确实已保存(在文本编辑器中打开存档内的 HTML 文件)。它们只是没有显示出来,因为该页面上的 JavaScript 在页面加载时隐藏了它们。

要查看它们,您可以在加载页面之前暂时终止 JavaScript,例如使用Web开发人员插件。安装后,您将添加一个新的工具栏,然后选择第一个选项卡"Disable" -> "Disable JavaScript".

但是当你加载原来的如果没有 JavaScript,则不会显示评论。因此,这意味着 Firefox 可以很好地处理这种情况。我以前从未想过这一点,因为我很少将页面保存到磁盘。

答案2

从客户端来看,如果你想在显示时保存状态,最好的(也可能是唯一的)办法是截屏。尤其是对于动态、自动生成的内容,例如可能来自 Flash 的 Javascript,没有真正实用的替代方案(不过,根据您正在查看的页面,有时您可能会使用一些工具来接近)。

扫描和保存 DOM 状态是“另存为”已经在做的事情。由于不要求数据在 DOM 中的任何地方都具有任何可理解或可保存的状态,因此如果您仅依赖 DOM,无论您尝试什么,都会错过细节。您必须做一些奇怪的事情,例如暂停并保存浏览器中 Javascript VM 的状态,然后以某种方式恢复它。不用担心状态的复杂性,它会根据存储在互联网其他地方的信息和数据定期更新。

我不完全确定您为什么还希望拥有页面的客户端版本媒体,但您已经通过“将页面另存为”命令获得了它。

相关内容