2011-03-11 187 views
0

我已經試過幾乎所有的東西來使這個工作。最好從代碼摘錄中解釋。調用函數傳遞給子窗口,相對於子窗口

function loadWindow() { 

var newWin = window.open("","win_1","");   
newWin.newObject = new tableObject(function(){window.document.write('test');}); 
newWin.document.close(); 
} 

有代碼編寫,沒有顯示,使其更具可讀性,但它寫入更多的HTML到子頁面。

它在第二頁中寫入的部分是onMouseDown='newObject.next();',它由構造函數function tableObject(nextClick) {this.next = nextClick}傳遞給tableObject。

當我調用該函數時,它會導致錯誤,但會將測試寫入父窗口,而不是孩子。

我想寫給孩子,不會導致任何錯誤: - /。

我一直在爲此工作幾天,並會非常感謝任何幫助。如果您需要更多可見的代碼,請告訴我。

回答

0

我想我解決了這個問題並想解釋解決方案。匿名函數調用的原因是window.document.write(「」);相對於父窗口而言,becuase在所有自由變量被分配給該對象時被關閉。所以當我在孩子中調用它時,它會引用父窗口而不是孩子。