【问题标题】:Jquery - Reading table data of Iframe of Different DomainJquery - 读取不同域的 iframe 的表数据
【发布时间】:2013-02-18 05:48:47
【问题描述】:

任何想法,页面从 iframe 中的不同域加载,其中包含一个表。我怎样才能得到那个表..使用任何语言,html,javascript,jquery,php等..

【问题讨论】:

  • 你能在这里举一些例子吗?小提琴?你试过什么?
  • 什么都试过了。将该页面加载到 iframe 中,然后当我想获取内容时,我得到了 firebug 中权限被拒绝的错误。有没有解决方案。我想在我的页面中获取外部网页的数据。该网页中的数据只有在我在该页面中执行提交操作后才可用,因此我使用了 iframe ..
  • 您是否可以更改“外部网页”,如果可以,您可以更改它以使用 javascript 将数据发送回父页面。
  • 不..我无法控制..它来自不同的服务器..

标签: php javascript jquery html


【解决方案1】:

编辑:

您也可以在使用 PHP 发布表单后获取数据。试试这个:

$post = http_build_query(
    array(
        'var1' => 'some content',
        'var2' => 'doh'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $post
    )
);

$context  = stream_context_create($opts);

$file = file_get_contents('http://example.com/submit.php', false, $context);

$file 现在包含对发布数据的响应。现在通过我在下面说的 simplehtmldom 解析它。

显然,由于跨域策略限制,它不会起作用。

如果你知道iframe的src,你可以通过CURL或者file_get_contents获取源,然后通读DOM结构得到想要的表数据。

示例代码:

$file = file_get_contents( 'IFRAME_URL_HERE' );

获得源代码后,您可以使用名为 SimpleHTMLDom http://simplehtmldom.sourceforge.net/ 的库轻松解析它

它可以像一两行代码一样为您提供所需的表格数据。 (非常类似于 jQuery 的语法,只是用 PHP 编写的)。

如果你能给出 iframe src 和你想要的表格数据,我可以给你一个工作示例。

希望对你有帮助。

【讨论】:

  • 该网页中的数据只有在我在该页面中执行提交操作后才可用,所以我使用了 iframe ,这个 file_get_contents 的 Bcoz 对我不起作用.. 那我该怎么做。跨度>
  • 好的,据我了解,您提供的链接是您提交数字的页面,如果正确,则会在 iframe 中打开一个链接。我说的对吗?
【解决方案2】:

您可以在 PHP 中使用 CURL 来获取它 - 只需 curl iframe 正在加载的 url。这是开始做这种事情的简单指南(使用 PHP 抓取)。

http://www.phpbuilder.com/columns/marc_plotz011410.php3

【讨论】:

  • 该网页中的数据只有在我在该页面中执行了提交操作后才可用,所以我使用了 iframe .. 我怎样才能做到这一点
  • 您可以在 curl (curl_setopt) 中设置选项来发布数据。甚至还有a good Stack Overflow answer 与此有关。
  • 您也可以在 PHP 中使用 CURL 执行提交操作。提交 HTML 表单时,它将根据表单的“方法”属性发送 HTTP GET 或 POST 请求。您也可以使用 CURL 发送相同的请求。
  • Curl 正在为您“提交”。当您单击提交时,一些数据将被发布到 url。您只需捕获该数据(您可以在 Chrome 的 Devtools 中的 Network 选项卡下对其进行检查),将其存储在 PHP 变量中,然后将该变量发布到 URL(如我链接到的 Stack Overflow 问题中所示)。跨度>
猜你喜欢
  • 1970-01-01
  • 2016-08-11
  • 1970-01-01
  • 2017-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多