如何在客户端或javascript获取页面HTML

时间:2010-01-14 10:53:47

标签: php asp.net javascript

如何在客户端或通过Asp.net应用程序中的javascript获取页面HTML。表示我想通过javascript或任何其他方式在客户端获取 http://www.yahoo.com 的html

5 个答案:

答案 0 :(得分:2)

如果你的意思是将页面html作为javascript中的字符串,你可以使用:

var s = document.body.innerHTML;

虽然您需要注意这并没有完全按照发送到浏览器的方式给出html,但它会为您提供从DOM构建的html - 本质上意味着任何错误都将被修复,并且它将包含任何错误动态创建的元素。

答案 1 :(得分:2)

出于安全原因(同源策略),您无法从JavaScript获取与其他主机名相关的页面的HTML源代码。

因此,除非您是Yahoo,否则您必须在服务器端运行代理,该代理将获取http://www.yahoo.com/,然后通过<script>块中的字符串将其内容返回到客户端,或者对XMLHttpRequest(也是最好的JSON编码)的响应。这称为跨域代理。

答案 2 :(得分:1)

链接:

http://www.boutell.com/newfaq/creating/include.html

有两种方法可以创建客户端包括:

JavaScript iframe 。在我们解决这两个问题之前,让我们看一下两者的优缺点。 JavaScript方法更加无缝。 JavaScript代码可以从任何URL获取页面的片段,并在任何时候将其插入到另一个页面中。最终结果看起来与服务器端包含一样好 - 但只有在JavaScript打开时才会如此。并且搜索引擎根本看不到包含的文本,这是一个严重的问题。

iframe方法更简单。 iframe元素可用于强制第二页“嵌入”在第一页内,这与Flash电影,视频和MP3播放器嵌入对象元素的方式非常相似。并且不必打开JavaScript。但这里也有缺点。 iframe元素具有固定的宽度和高度,无论内容有多大。这可能意味着页面内的滚动条。并且,在撰写本文时,Google似乎没有将iframe引用的单独页面编入索引,以便搜索者可以找到您的网页。

答案 3 :(得分:0)

您使用Ajax

我建议使用jQuery Ajax javascript库。

答案 4 :(得分:0)

你的意思是PHP函数类似于file_get_contents($url)吗?