最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Wait for iframe to load before next function is triggered? - Stack Overflow

programmeradmin5浏览0评论

First off: I know things should be run asynchronously if possible.

I have a function, called wrap:

essentially it loads the current page as an iframe. I need it in order to keep the javascript running even when links are clicked on the page.

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 
    });
}

When the wrap is run, i want to start manipulating the contents of the iframe. For the structure of the app, I would like need to do this from ouside of the wrap-function or with parameters that I pass in to the wrap function. I do this with a series of functions that execute animations, play sounds etc. (Stuff that takes time and should also be executed sequentially). This Is what i Would Ideally like it to look like.

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

First off: I know things should be run asynchronously if possible.

I have a function, called wrap:

essentially it loads the current page as an iframe. I need it in order to keep the javascript running even when links are clicked on the page.

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 
    });
}

When the wrap is run, i want to start manipulating the contents of the iframe. For the structure of the app, I would like need to do this from ouside of the wrap-function or with parameters that I pass in to the wrap function. I do this with a series of functions that execute animations, play sounds etc. (Stuff that takes time and should also be executed sequentially). This Is what i Would Ideally like it to look like.

wrap();
highlight('#one');
highlight('#two');
Share Improve this question asked Feb 26, 2013 at 21:23 HimmatorsHimmators 15k39 gold badges136 silver badges231 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 16

jQuery can use the ready function on iframes, just the same as it can with the document. Put it inside your highlight function, and it will run after the iframe is done loading.

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

You could create a function:

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

And pass this function as a callback of iframe load event so this way your code would execute after the iframe was loaded

发布评论

评论列表(0)

  1. 暂无评论