【问题标题】:Can I use Javascript to get a web page Without the use of XMLHttpRequest or document object?我可以在不使用 XMLHttpRequest 或文档对象的情况下使用 Javascript 获取网页吗?
【发布时间】:2012-07-20 06:42:28
【问题描述】:

web 服务器发送 HTML(1) ---> 浏览器获取 HTML(1) ---> 脚本引擎开始工作等等..

我需要在我的项目中获取 HTML(1)。 'XMLHttpRequest.responseText' 可以做到。我认为这很棒! 但它必须提出另一个请求。

而 'document.getElementsByTagName()' 返回呈现的 HTML。这不是我想要的。

我们可以在 IE 开发工具的“脚本”选项卡中看到 HTML(1)。(不是“html”选项卡) 那么我猜想没有其他请求就可以得到 HTML(1)。

有什么方法可以用 javascript 获取 HTML(1) 吗?

已添加------------------ 有sample.html

&lt脚本&gt document.write('AAAAAA'); &lt/脚本&gt &lt身体&gt 正文内容 &lt/身体&gt

document.getElementsByTagName('html') 返回如下。

&lt脚本&gt document.write('AAAAAA'); &lt/脚本&gt &lt身体&gt AAAAAAbody 内容 &lt/身体&gt

但我需要……网页的纯源代码

【问题讨论】:

  • 等一下,您想要当前正在查看的页面的来源,还是完全想要另一个页面的来源?
  • 完全正确。我当前正在查看的页面的来源。
  • 您是否有理由需要 JavaScript 的完整源代码并且不能使用 wget 之类的东西?至少从四处探查来看,这看起来不太可能。您正在构建扩展程序吗?
  • @beanland 我只是在设计一些网页的安全模型。但这似乎是不可能的。 :(谢谢你的回复

标签: javascript html


【解决方案1】:

如果您想以字符串形式获取当前页面,请使用document.documentElement.innerHTML


我认为浏览器实际上不会保留由 Web 服务器发送的原始 HTML,因为如果您尝试查看页面源,浏览器实际上会向服务器发出请求。

【讨论】:

  • 它返回了“渲染”的 HTML。那不是我想要的……我需要由 Web 服务器发送的 HTML。
  • 我刚刚更新了我的问题。那你就知道我想问什么了。。谢谢你的回复。
  • @Musa,我认为你是对的。 document.documentElement.innerHTML 包含服务器最初给我的修改标记。
  • 嗯.. 您确定每当我们尝试查看源代码时,浏览器都会向服务器发出请求吗?那么每当我们打开开发者工具时,它都会尝试向服务器请求?
  • 当您打开开发者工具时,它会显示由 html 和 js 操作构建的 dom 树,为什么它必须向服务器发送请求以显示这一点,我之前也检查过(在 chrome 中)发布了。
猜你喜欢
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 2010-12-25
  • 1970-01-01
  • 2011-06-18
  • 1970-01-01
相关资源
最近更新 更多