【问题标题】:how can i insert only one part of a page with an iframe?如何使用 iframe 仅插入页面的一部分?
【发布时间】:2013-08-09 12:10:29
【问题描述】:

我正在尝试获取页面的一部分,例如http:/example.com/home.html,该主页有一个带有一些 id="content" 的 div,id 喜欢设置 iframe 并仅显示“内容”...正如这篇文章所说,我已经尝试过加载(使用 jquery)

http://stackoverflow.com/questions/4249809/reload-an-iframe-with-jquery

但还没有结果,知道怎么做吗?在 jquery 或直接 php 中。

提前致谢。

【问题讨论】:

  • 您是否可以控制要抓取的内容?如果是这样,您是否需要将内容放在 iframe 中?或者你可以把它作为一个 ajax 响应放在一个 div 中吗?
  • 当你用 PHP 标记时,你想通过 PHP 的 cURL 来抓取它吗?
  • tahnks,我无法控制内容,它在一个销售汽车的网站上,我只想显示东西而不显示徽标等,只有内容。每次我尝试时,它都会抛出错误,但我不知道是什么样的......它没有说任何(带有萤火虫),@ShivanRaptor 如果可以用 php 抓取它,我会这样做,谢谢回复

标签: php jquery iframe


【解决方案1】:

也许您不需要使用 iframe - 它们通常用于嵌入另一个网站,而这并不是您所需要的。相反,向您需要的 url 发出 ajax 请求,并使用 jquery 解析响应并获取您需要加载的 div。

例子:


$.ajax({
  type: "GET",
  url: "http://stackoverflow.com/questions/4249809/reload-an-iframe-with-jquery",
  success: function(r) {
    var content = $(r).find("#content");
    //now you have the content div stored in a variable
  }
});

【讨论】:

  • 我一直在尝试这种方法,due 听起来很不错,但是......似乎是我没有做的事情,它返回一个错误,但没有说是哪一个:s
  • 需要注意的问题以及为什么这可能不起作用的是跨域限制。不过有一些方法可以解决它:stackoverflow.com/questions/3506208/jquery-ajax-cross-domain
【解决方案2】:

也许您可以尝试 jquery 中的 $.get 函数来仅获取某些元素的内容

https://stackoverflow.com/a/9713037/1781996

【讨论】:

    【解决方案3】:

    好的,这是我的建议。如果您只想从页面中获取一段内容,可以使用 ajax 调用,将答案存储在变量中并使用 split jquery 函数。假设您要加载的页面是一系列 div,在您想要的 div 内,您可以在 div 的开头和结尾放置类似的东西,之后剩下的就很容易了,当你得到你的来自 ajax 调用的数据,您使用类似:

    var answer = (you ajax response) ;
    var content = answer.split("<!-- SPLIT CONTENT -->");
    $('#MyCoolContainer').html(content[1]);
    

    通过这样做,您会将答案分成 3 个部分,第一个 content[0] 将是第一条评论之前的所有内容,content[1] 将是您想要的 div 的内容,而 content[2] ] 将是结束 SPLIT CONTENT 之后的所有内容。然后你只需将该内容放在一个 div 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-17
      • 2014-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-17
      • 1970-01-01
      相关资源
      最近更新 更多