在触发下一个函数之前等待iframe加载?

时间:2013-02-26 21:23:55

标签: javascript jquery

首先:我知道如果可能,应该异步运行。

我有一个函数,叫做wrap:

基本上它将当前页面加载为iframe。我需要它,以便即使在页面上点击链接时也能保持javascript运行。

function wrap(){
    event.preventDefault();
    var pathname = window.location.pathname;
    $('body').html('<iframe id="wrapper" src="'+ pathname +'" >')
    $('iframe').load(function (){
           //this is where the magic outght to happen 
    });
}

运行换行时,我想开始操作iframe的内容。对于app的结构,我想要从wrap-function的ouside或我传入wrap函数的参数中做到这一点。我用一系列执行动画,播放声音等的函数来做这件事。(这需要时间,也应该按顺序执行)。这就是我理想的样子。

wrap();
highlight('#one');
highlight('#two');

2 个答案:

答案 0 :(得分:11)

jQuery可以在iframe上使用ready函数,就像它对文档一样。将它放在高亮显示功能中,它将在iframe完成加载后运行。

$("iframe").ready(function (){
    // do something once the iframe is loaded
});

答案 1 :(得分:-7)

你可以创建一个函数:

 function iframeready() {
     // code after iframe is loaded
 }

并将此函数作为iframe加载事件的回调传递 所以这样你的代码就会在加载iframe之后执行