2009-10-02 141 views
0

如何查询通过$ .get获取的字符串?例如,我想形式谷歌只有正文HTML:

$.get("www.google.com", function(data){ 
var body = $("body", data).html(); //This doesnt work 
}); 

这是可能的吗? 谢谢

+2

你可能想尝试添加'http://'来获得,虽然... – peirix 2009-10-02 07:12:47

回答

2

不能,jQuery不能直接访问通过XmlHttpRequest加载的页面的DOM。为了做到这一点,你必须使用用JavaScript编写的HTML解析器,如the one that John Resig wrote。尽管如此,这仍然是一个比你想象的要难得多的任务。

2

一件事是,这不会工作,因为你需要一个HTML解析器。另一个是,除非你这样做www.google.com这不会工作,因为same origin policy。有很多方法可以避免这种情况,最流行的是JSONP,但也可以手动完成,而不使用jQuery定义的jsonp方法。

编辑:
如果你不想去通过在你的JavaScript不同的领域获得内容的问题,另一种方法是使用你的服务器吧,PHP,.NET ECT到获取远程页面,然后使用AJAX将其返回给JavaScript。这会比在js中直接做更费时,因为你正在做2个请求而不是1个请求。但是,根据您的服务器工具,您可能更容易解析html,而不是在js中执行该操作,因此您可以更轻松地将所需内容获取到您的页面。

+0

我需要加载一个远程文件(与一些querystrings的.aspx),并需要它的正文html。还有什么其他方式可以做到这一点? – k0ni 2009-10-02 07:44:40

相关问题