在加载和后期消息处理中使用回调

时间:2018-10-10 17:05:14

标签: jquery postmessage

整天忙于回调,我似乎仍然无法在文件加载/发布消息的情况下应用它们。基本上,我是在iframe中加载一个Caspio数据库文件,并使用postmessage将其一些数据记录发送给父级。所有这些都很好。但是,然后我希望我的代码的大部分在执行上述postmessage之后继续执行。目前,我设法使数据库最初完全加载(警报的第1部分),但是该代码没有跳转到后消息(第2部分中的代码),而是跳转到“第3部分”。第2部分甚至还没有完成。我想要的是数据库的加载和后期消息传递的全部完成,然后再继续第3部分。任何帮助表示赞赏。

$('<iframe>', {
    id: 'myiframe',
    src: 'https://blahblah…',
}).appendTo('#iframeContainer');

$('#myiframe').on('load', function() {
    alert('Part 1: File finished loading');

    //-----------

    // Receive postmessage from iframe  
    var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
    var eventer = window[eventMethod];
    var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

    eventer(messageEvent, function(e) {
        var myDatabaseData = e.data;
        alert('Part 2: Database data all received');
    }, false);

    //-----------

    $(function() {
        alert('Part 3: Do this code AFTER Part 1 and Part 2 completed');
    })

    //-----------

}) // End of LOAD

0 个答案:

没有答案