Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取通过ajax加载的iframe的HTML(请注意,iframe包含需要加载javascript的网页)_Php_Javascript_Jquery_Ajax_Iframe - Fatal编程技术网

Php 获取通过ajax加载的iframe的HTML(请注意,iframe包含需要加载javascript的网页)

Php 获取通过ajax加载的iframe的HTML(请注意,iframe包含需要加载javascript的网页),php,javascript,jquery,ajax,iframe,Php,Javascript,Jquery,Ajax,Iframe,是否可以从我使用jquery通过ajax调用加载iframe的页面获取iframe的HTML(请注意,iframe指的是通过ajax调用加载的网页? 事实上,我想放弃这篇文章的内容。 问题是这个网站是通过ajax加载的。因此,我不能使用curl获取需要加载javascript的网页内容 为了解决这个问题,我使用ajax从index.php调用了一个php文件,并将我的query q=blog传递到将这个iframe返回index.php的php页面 <iframe id="myframe"

是否可以从我使用jquery通过ajax调用加载iframe的页面获取iframe的HTML(请注意,iframe指的是通过ajax调用加载的网页?

事实上,我想放弃这篇文章的内容。 问题是这个网站是通过ajax加载的。因此,我不能使用curl获取需要加载javascript的网页内容

为了解决这个问题,我使用ajax从index.php调用了一个php文件,并将我的query q=blog传递到将这个iframe返回index.php的php页面

<iframe id="myframe" src="https://blekko.com/#?q=blog" width="100%" height="100%"></iframe>
    <div id="myhtml" style="display:none"></div>

在成功的ajax响应之后,我保存了ajax的响应,这是一个 iframe与查询一起引用网站 在index.php的div中

<iframe id="myframe" src="https://blekko.com/#?q=blog" width="100%" height="100%"></iframe>
    <div id="myhtml" style="display:none"></div>

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>

var newInt=setInterval(函数(){check();},5000);
函数检查(){
blekko_html=$(“#myframe”).contents().find(“html”).html();
警报(blekko_html);
}
但每次调用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页面,如果我可以进行抓取和获取所需数据。

可能会将onload添加到iframe并在那里进行检查


我将修改
check()
以执行
console.log(blekko_html)
而不是
警报


然后在Chrome或Firebug或IE F12中的开发者控制台中进行检查,您试图访问指向另一个域的网页的iframe内容

如果iframe的src未指向当前父页面所在的域,则无法访问该iframe的内容。这称为跨域策略

您必须使用服务器端语言来获取给定url的html,并将其返回到您的索引页面,以显示在任何div或其他任何内容中

让我举一个例子来解释为什么javascript不能进行跨域访问

  • 假设我在iframe中的网站上有一个类似FB的框
  • 现在,每当有任何用户访问我的网站,我都会触发一次点击 like box的iframe内的like box
  • 这样,我的FB页面将有成千上万的喜欢
  • 但由于跨域策略,这无法完成

希望您理解我的观点

您需要确保首先加载iframe内容

function check(){
    $("#myframe").load(function(){
          blekko_html = $("#myframe").contents().find("html").html();
          alert(blekko_html);
    });
}

@斯蒂普实际上不是。我的问题是不同的…我们可以使用jquery获取iframe的内容…但是如何获取通过ajax调用的iframe的内容,以及在ajax响应几秒钟后加载iframe内的网页…因为框架内的内容是通过ajax加载的。我尝试过这一点,并从控制台收到以下消息错误:权限被拒绝要访问属性“文档”源文件:行:3。。。知道如何获得访问权限吗?你是对的…这就是为什么我在控制台中得到这个错误,拒绝访问属性“document”源文件:code.jquery.com/jquery-1.7.2.min.js?\u=1377911359134行:3。我的首要任务是使用服务器端语言,比如php来获取html…但是我需要废弃的网页并获取它的html是通过ajax加载的,而所有服务器端方法(比如CURL)都不支持javascript。。。