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

К сожалению, вы не можете управлять окном кросс-домена или получить доступ к нему. Это делается для обеспечения безопасности. У вас есть контроль над другим URL-адресом?

Однако, если окно находится на в том же домене, у вас есть доступ к окну и его DOM.

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

+1 но это не так :) – Sarfraz

+0

@Sarfraz: Ну, к сожалению, для него, по крайней мере. Но да, лучше, чтобы эта предосторожность была реализована, иначе люди могли бы совершить множество непослушных вещей. :) –

+2

Это не сработало для меня, так как win.someFunction() не будет готов/определен еще сразу после создания нового окна - так что у меня появился новый оконный вызов window.opener.child_ready(), который, в свою очередь, будет запускаться win.someFunction(). Если есть лучший способ, рад слышать об этом, иначе, возможно, это поможет кому-то. – MSpreij