【问题标题】:jQuery: query a $.get() returned stringjQuery:查询 $.get() 返回的字符串
【发布时间】:2009-10-02 07:08:40
【问题描述】:

如何查询通过 $.get 获得的字符串?例如,我只希望表单 google 正文 html:

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

有可能吗? 谢谢

【问题讨论】:

  • 您可能想尝试将http:// 添加到该获取中,但...

标签: javascript jquery ajax get


【解决方案1】:

不,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 等来获取远程页面,然后将其返回使用 AJAX 的 JavaScript。这将比直接在 js 中执行更耗时,因为您正在执行 2 个请求而不是 1 个请求。但是,根据您的服务器工具,您可能会更轻松地解析 html 而不是在 js 中进行解析,因此您可以更轻松地在页面中获取所需的内容。

    【讨论】:

    • 我需要加载一个远程文件(一个带有一些查询字符串的 .aspx)并需要它的正文 html。还有什么其他方法可以做到这一点?
    猜你喜欢
    • 1970-01-01
    • 2013-09-14
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2021-12-09
    相关资源
    最近更新 更多