2010-09-22 70 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