jquery每次iframe改变状态时如何收集iframe的内容?

时间:2014-11-01 09:42:56

标签: javascript jquery html iframe

我正在开发一个项目,我想收集一个隐藏的iframe的内容,并在每次iframe在加载时改变状态时使其成为div的html,这样它就像页面被重定向并下载其内容,但页面的标题和基础也不会刷新。

一个很好的例子就是facebook如何在重定向时保持其标题和基础固定。

我已经使用onload将divrame内容收集到div中,但问题是,在收集之前内容不会从iframe完全下载,即图像,.css文件和{{1文件。

这是我试过的代码:

用于收集内容的脚本

.js

和框架

<script type="text/javascript">
function frame_loaded(){
         var content=$('#iframe_id').contents().find('#body');
         $('#my_div').html(content);
}
</script>

和DIV     

所以我使用<iframe id="iframe_id" src="some_url.php" style="display: hidden;" onload="frame_loaded()"></iframe> 来减慢时间1秒,所以框架会加载内容并在收集内容之前完全执行它。

以下是代码:

setTimeout()

有时内容仍然无法在收集之前从iframe下载内容。

我不知道如果iframe完全加载或听取它的就绪状态,如何监听iframe。

如果有人能告诉我这样做的最佳方法,那将非常感激,因为我对此非常陌生。

2 个答案:

答案 0 :(得分:-1)

有点“愚蠢”,但试试这个(我没有你的代码所以对我来说有点“难”

$(document).on('load','#iframe_id',function(){
    var content = $(this).content().find('#body');
    $('my_div').html(content);
})

答案 1 :(得分:-1)

我建议使用portholejs来帮助您与iframe(域xyz.com)进行交互,并且可以在iframe(域xyz.com)和保存它的页面之间传递消息(域abc 。例如,在iframe加载的情况下,您可以将布尔值(从xyx.com)传递到您的页面(abc.com),该页面包含iframe,然后下载内容,其中有一个工作示例,说明它是如何工作的here。 希望它有所帮助。