我正在嵌入一个iframe,这是一个包含一些Javascript的简单网站。JS有一些$(document).ready
处理程序。
问题是,当iframe的加载事件触发时,它们会触发,这发生在我设置src
属性&已加载所有资源。但是,在此之前我需要做一些工作-即为主要body
标签编译Handlebars模板。
所以,理想情况下我想:
- 设置
src
属性 - 抓取手柄模板
- 加载资源后,渲染模板并设置
body
标签的html
- 从原始iframe的Javascript中执行所有
doc.ready
处理程序
这可能吗?我需要获得所有处理程序,然后在附加呈现的模板后手动触发iframe主体上的load
事件。但我的尝试
$('iframe').contents().find('body').trigger('load')
不工作。任何建议吗?
你可以使用jQuery的$.holdReady()
,像这样:
$.holdReady(true);
// do stuff
$.holdReady(false); // execute all pending .ready callbacks
我没有尝试过它与iframe,但应该工作。