2012-12-19 36 views
0

我在JavaScript中定義了一個新窗口,這樣父窗口上運行:問到在新的窗口中運行的功能,但它仍然

var r = window.open("", "rgroup", "status=1,width=800,height=600"); 

,我有一個打印某些輸出功能,我試圖像這樣運行它:

r.onload = runproduct(); 

但它仍然在主窗口上運行。

我必須補充,我不是想給從父窗口中運行的秩序,但是從第二個新的窗口,所以長話短說,我有:

1)主窗口(功能這裏出現)

2)第二個窗口(我從這裏發出命令)

3)第三個窗口(這是我想要的輸出發生)

是很容易解決?我正在撓頭,因爲爲什麼讓命令在主窗口的第二個窗口上運行一個功能,但是從第二個窗口向第三個窗口發送命令不會...

謝謝任何澄清!這有點令人困惑...

回答

1

函數在創建的時候包含可變上下文,而不是在它們運行時。即您的runproduct()正在使用它創建上下文的變量作用域鏈(主窗口)。無論何時運行,對全局變量或其他閉包變量的任何引用都將在主窗口中處於狀態。

爲了解決這個問題,你可以編寫你的runproduct()函數來直接引用窗口引用。例如。

var r; 
function runproduct() { 
    console.log(window); // refers to main window 
    console.log(r); // refers to second window 
} 
r = window.open(...etc...); 
+0

謝謝。那樣做了,仍然沒有工作,但至少我現在有其他的東西需要考慮。 –

相關問題