【发布时间】:2013-08-31 00:21:40
【问题描述】:
是否可以从我使用 jquery 通过 ajax 调用加载它的页面获取 iframe 的 HTML(请注意,iframe 是指通过 ajax 调用加载的网页)?
实际上我想废弃这个website 的内容。
问题是该网站通过 ajax 加载。所以我不能使用 curl 来获取需要加载 javascript 的网页内容。
为了解决这个问题,我从 index.php 调用一个带有 ajax 的 php 文件,并将我的查询 q=blog 传递给 php 页面,该页面将此 iframe 返回给 index.php
<iframe id="myframe" src="https://blekko.com/#?q=blog" width="100%" height="100%"></iframe>
成功的 ajax 响应后,我将保存 ajax 的响应,这是一个 iframe 与查询一起引用网站 在 index.php 的一个 div 中
<div id="myhtml" style="display:none"></div>
此website 的内容在 3 到 6 秒后加载到 index.php 的 iframe 中 我在 index.php 中有一个 jquery 函数,它在 5 秒间隔后检查 div id "myhtml" 的 html
<javascript>
var newInt = setInterval(function(){ check(); }, 5000);
function check(){
blekko_html = $("#myframe").contents().find("html").html();
alert(blekko_html);
}
</javascript>
但是每次调用 check() 函数时,它都会返回/警告这个
<iframe id="myframe" src="https://blekko.com/#?q=blog" width="100%" height="100%"></iframe>
即使 iframe 加载了网页内容,它也总是返回 iframe 的 html 初始化之上,而不是其中网页的 html。
是否可以获得通过 ajax 调用加载的 iframe 的 html,并且该 iframe 包含通过 ajax 调用加载的网页?
如果我能够获取该 iframe 的 html,那么我将使用 ajax 再次将其发送到 php 页面,如果我可以进行抓取并获取所需的数据。
【问题讨论】:
-
@SteAp 实际上不是。我的问题是不同的......我们可以使用 jquery 获取 iframe 的内容......但是如何获取我们通过 ajax 调用的 iframe 的内容以及 iframe 内的网页在几秒钟的 ajax 响应后加载.. .因为框架内的内容通过ajax加载。
标签: php javascript jquery ajax iframe