2009-12-02 88 views

回答

3

類似的問題只是最近問:

堆棧溢出問題:Quickest way to pass data to a popup window I created using window.open()?

使用,作爲一個基地(並提供了家長和WIN-A是在同一個域):

// Put outside click handler 
var winA = null; 

// Put inside click handler 

if(!winA){ 
    // Store the return of the `open` command in a variable 
    var winA = window.open('http://www.mydomain.com/page1'); 
} else { 
    var title = winA.document.title; 
    // Do something with title 
    var winB = window.open('http://www.mydomain.com/page2'); 
} 
4

考慮:

var myWindow = open("foo.bar"); 

老方法:更改窗口對象的name屬性:

myWindow.name = "..."; 
// in foo.bar: 
setInterval(someFunctionToCheckForChangesInName, 100); 

HTML5方法:調用窗口對象的postMessage方法:

myWindow.postMessage("...", "*"); 
// in foo.bar: 
(window.addEventListener || window.attachEvent)(
    (window.attachEvent && "on" || "") + "message", function (evt) { 
    var data = evt.data; // this is the data sent to the window 
    // do stuff with data 
    }, 
false); 
+2

我從來沒有見過(possibly_present_func_one || possibly_present_func_two)(參數,參數);技術之前。涼。 – 2009-12-02 20:50:37

+0

Trevor:如果它不是'window'的屬性,請不要忘記使用'.call(the_object_that_is_supposed_to_be_the_parent,args)'。 – 2009-12-02 22:46:46

+0

使用花哨的作業和速記操作很酷,但對於像SO這樣主要關注分享知識的頁面,這不是最好的方法。人們對JS不感興趣「||」 - 或者任務必須認爲它看起來很神祕而且不直觀。 – 2013-10-11 17:28:16

0

當你調用window.open,它返回到基準新打開的窗口。您可以將引用存儲到在數組中打開的窗口,然後在需要打開另一個新窗口時迭代該數組。

加布裏埃爾

相關問題