【问题标题】:Get objects from javascript using URL without loading the document使用 URL 从 javascript 获取对象而不加载文档
【发布时间】:2011-06-22 15:10:09
【问题描述】:

我有一个链接到 HTML 文档的 URL,我想在浏览器中不加载 URL 的情况下获取文档的对象。例如,我有一个名为: http://www.example.com/, 如何获取此文档的一个对象(即通过 getElementsbyTagName)?

【问题讨论】:

  • 你能再解释一下吗?听起来您想在不加载 HTML 文件的情况下读取它?我理解正确吗?
  • 如果网址在同一个域中,您可以使用.load() 看我的回答。
  • 只是想获取 HTML 文件的一些对象,我知道 URL 并没有在我的浏览器中加载它

标签: javascript url


【解决方案1】:

你不能。您最多可以省略从文档中链接到的无关文件,例如 javascript 或 css,但您不能只抓取文档的一部分。

获得文档后,您可以从中提取一个部分,但您不能只提取一个部分而不先获取整个内容。

这相当于说你想要一篇文章的第二段。没有文章,你不知道第二段是什么,从哪里开始或结束。

【讨论】:

    【解决方案2】:

    此文档与运行您的 javascript 的安全域位于同一域还是不同域。

    如果它在同一个域中,您有几个选项可供探索。

    您可以使用 XMLHttpRequest 或 JQuery.get 加载页面,并使用丑陋的正则表达式从 HTML 中解析出您要查找的数据。

    或者,如果您觉得真的聪明,您可以将目标文档加载到 jsdom 对象中,jQuerify 它,然后使用生成的 jquery 对象来访问您的日期'正在寻找一个简单的选择器。

    【讨论】:

      【解决方案3】:

      如果网址在同一个域中,您可以使用.load(),例如:

      $("some_element").load("url element_to_get")

      看我的例子 - http://jsfiddle.net/ajthomascouk/4BtLv/

      在这个例子中,它从这个页面获取 H1 - http://jsfiddle.net/ajthomascouk/xJdFe

      很难用 jsfiddle 来展示,但我希望你能明白它的要点?

      在此处阅读有关.load() 的更多信息 - http://api.jquery.com/load/

      【讨论】:

        【解决方案4】:

        我猜是使用 Ajax 调用。

        如果你没用过XHR的话就长篇大论了,所以这里有一个链接:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest

        另一种选择是构造一个iframe 使用

        var iframe = document.create('iframe');
        iframe.src = 'http://...';
        

        【讨论】:

          猜你喜欢
          • 2012-03-16
          • 2011-01-09
          • 2014-04-08
          • 2014-09-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-09-16
          • 1970-01-01
          相关资源
          最近更新 更多