2014-12-03 112 views
0

我需要訪問的子窗口的JavaScript對象,這裏是我的代碼:訪問子窗口對象

var bw = window.open("broadcast.html",'broadcast'); 

然後我訪問JS對象:

bw.childObj.f(); 

的問題是, JavaScript可能在子窗口中評估時間過長,childObj有時無法在window.open之後訪問。同樣的問題occures甚至當我把它放在onload

$(bw).on('load', function() { 
    bw.childObj.f(); 
} 

5的10倍childObj簡直是不確定的。但是,當我這樣做:

setTimeout(function() { 
    bw.childObj.f(); 
}, 3000); 

我總是得到一個結果,但當然,這不是正確的確定性解決方案。

我該如何做到這一點同步?

回答

0

你可以試着聽loadDOMContentLoaded事件:

var bw = window.open("broadcast.html",'broadcast'); 
bw.addEventListener('load', function(){ 
    bw.childObj.f(); 
}); 
0

這是使用方法。

在你broadcast.html,附加window.onload事件這樣

window.onload = function() { 
    /* `fn` is not defined in `broadcast.html`, it's defined 
     in another html/js file */ 
    fn(childObj); 
} 

在你的另一個HTML/JS文件:

var bw = window.open("broadcast.html",'broadcast'); 
/* we add `fn` function to `bw` object */ 
bw.fn = function (obj) { obj.f(); }