从Javascript获取“未修改的”HTML文档

时间:2010-06-13 13:55:55

标签: javascript html

是否有可能以文本形式获取当前HTML文档的来源(与加载时完全相同)? (即解析和DOM操作后不是“生成的源”。)

注意:在这种情况下,再次发出额外的AJAX请求以再次检索HTML页面:文档可能已更改。

大多数浏览器都有一个“查看源”功能,它可以提供我想要的功能 - 因此浏览器无论如何都会保留原始HTML内容。如果我可以访问那个会很好......

3 个答案:

答案 0 :(得分:4)

您无法使用JavaScript执行此操作,浏览器不负责保留原始文档。正在制作一个带有时间戳的AJAX请求吗?您可以使用new Date()存储页面的加载日期,并在有历史记录可用时再次询问文档时将此时间戳传递给服务器。

除此之外......我不确定你是如何用JavaScript / HTML做的。这里的实际最终目标是什么?您是否看到<form>及其输入是否已更改,或其他内容?

答案 1 :(得分:3)

据我所知,没有办法这样做。

可能尝试非常早地抓取HTML 并将其存储在变量中,但这是一个非常糟糕的选择,因为:

  • 如果很早太早(在加载所有DOM节点之前),那么在尝试获取innerHTML属性时会遇到麻烦
  • 如果很早就是DOM已经准备好进行操作了,可能已经太晚了(如果你有<script>document.write(stuff);</script>这样的东西,你可能已经看到了对HTML内容的不同视图)

尽管有很多可能的影响,但使用AJAX重新获取文档可能是您解决此问题的最佳选择。

答案 2 :(得分:1)

一个非常糟糕的hack-around方法是仅使用JS加载页面。使用单个AJAX调用加载空白页面以获取页面的实际内容。

但是,在此之前,我会重新考虑您要做的事情,以及为什么需要“保存状态”。