2010-09-22 72 views
9

我是javascript新手。我想知道如何從JavaScript方法打開一個新窗口,然後調用它的JavaScript方法。打開一個新窗口,並調用javascript函數

窗口的URL在另一個域(可能導致安全問題!?),我無法控制它。

例如,應該表現爲以下內容代碼:

handler<-openAWindow("www.someurl.com");//open a window and get a handler for it 
handler->someMethod1(param1, param2);//call some javascript method 
handler->someMethod2(param3, param4);//call some other javascript method<br> 

謝謝,
葉蘭。

回答

17

不幸的是,您無法控制或訪問跨域窗口。這是爲了安全防範措施。你有控制其他網址嗎?

但是,如果窗口位於相同域上,則您可以訪問該窗口及其DOM。

var win = window.open("/page", "title"); 
win.someFunction(); 
var el = win.document.getElementById("id123"); 
//etc. 
+2

+1但它不是不幸的:) – Sarfraz 2010-09-22 18:38:57

+0

@Sarfraz:那麼,不幸的是,至少對他而言。但是,是的,這是最好的預防措施,否則人們可以做很多調皮的事情。 :) – 2010-09-22 18:40:44

+2

這對我來說不起作用,因爲win.someFunction()在創建新窗口後還沒有準備好/定義,所以我有新的窗口調用window.opener.child_ready(),它反過來會運行win.someFunction()。如果有更好的方法,很高興聽到它,否則這可能會幫助某人。 – MSpreij 2014-09-06 01:33:27