14

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

我有一个名为 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 的内容。对于应用程序的结构,我希望从 wrap-function 之外或使用我传递给 wrap 函数的参数来执行此操作。我使用一系列执行动画、播放声音等的功能来做到这一点(这些东西需要时间,也应该按顺序执行)。这就是我理想的样子。

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

2 回答 2

15

jQuery 可以在 iframe 上使用 ready 函数,就像在文档中一样。把它放在你的 highlight 函数中,它会在 iframe 加载完成后运行。

$("iframe").ready(function (){
    // do something once the iframe is loaded
});
于 2013-02-26T21:29:09.373 回答
-9

您可以创建一个函数:

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

并将此函数作为 iframe 加载事件的回调传递,这样您的代码将在 iframe 加载后执行

于 2013-02-26T21:30:27.907 回答