整天忙于回调,我似乎仍然无法在文件加载/发布消息的情况下应用它们。基本上,我是在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