有可能"劫持"和延迟文件就绪事件处理程序?

时间:2014-05-25 14:03:55

标签: javascript jquery iframe

我嵌入了iframe,这是一个包含一些Javascript的简单网站。 JS有几个$(document).ready处理程序。

问题是,当我设置src属性&所有资源都已加载。但是,在此之前我需要完成一些工作 - 即为主body标记编译Handlebars模板。

所以,理想情况下我想:

  • 设置src属性
  • 抓住Handlebars模板
  • 加载资源后,渲染模板并设置html代码的body
  • 从原始iframe的Javascript
  • 执行所有doc.ready个处理程序

这可能吗?我需要获取所有处理程序,然后在附加渲染模板后手动触发iframe主体上的load事件。但我的尝试

$('iframe').contents().find('body').trigger('load')

没有工作。有什么提示吗?

1 个答案:

答案 0 :(得分:2)

您可以使用jQuery的$.holdReady(),如下所示:

$.holdReady(true);

// do stuff

$.holdReady(false); // execute all pending .ready callbacks

我没有尝试使用iframe,但应该可以使用。