我有一個函數返回的對象字面值,反過來,這個對象創建一個iframe,並在該iframe中加載DOM時執行一些操作。我希望能夠在事件觸發時「獲取」回調所返回的值。這裏是一個簡化的對象:通過addEventListener瞭解javascript回調
var myFunc = function (url) {
return {
url: url,
myMethod: function() {
// some code here to create my iframe.
var callbackFunc = function (event) {
// do some stuff with the dom.
return aValueAsynchronously;
};
var async = my_iframe.addEventListener("DOMContentLoaded", callbackFunc, true);
my_iframe.src = this.url;
}
}
}
閱讀這段代碼我使用它作爲跟隨在它之外後:
var myValue = myFunc.myMethod('http://www.example.org');
和example.org是在完成在iFrame中加載時,將DOMContentLoaded回調被觸發,並且返回值(在一些邏輯之後)。我如何得到這個值分配給myValue(上面的行)?我知道我需要使用回調來做到這一點,但在哪裏以及如何?
非常感謝您的幫助!
感謝您的回答!我會嘗試你所描述的兩種解決方案,看看它是如何工作的! :-) –
喜歡直接傳遞迴調值的第二種解決方案!它真正展現了JS的實力!再次感謝! –