使用live()在加载时获取iframe内容

时间:2011-09-10 12:18:02

标签: jquery iframe

我有一个使用iframe的文件上传脚本,因此页面无需重新加载。

我遇到了一个问题,当使用jQuery的.live()事件加载iframe时,从 iframe中检索数据,如下所示:

$("iframe").live("load", function() {
    console.log($(this).contents().find("body").html());
});

这个事件甚至没有触发(我在Firebug中什么都没得到),那么在从我的文件上传脚本中加载一些内容后,如何获取iframe的HTML呢?我想这样做,所以我可以在服务器上运行PHP脚本的返回状态。

我必须使用.live(),因为这些元素是动态添加的,这意味着传统的.load()将不起作用。

1 个答案:

答案 0 :(得分:6)

来自jQuery文档:

注意:.live()和.delegate()方法不能用于检测iframe的load事件。 load事件未正确冒泡父文档,并且事件委托不需要设置事件委托所需的Firefox,IE9或Chrome设置event.target。

http://api.jquery.com/load-event/

您是否可以提供有关您尝试执行的操作的更多信息,应该可以捕获事件,但不能使用iFrame加载。