2010-09-22 39 views
9

Tôi mới sử dụng javascript. Tôi muốn biết làm thế nào một cửa sổ mới có thể được mở từ một phương pháp javascript, và sau đó gọi nó là phương pháp javascript.mở một cửa sổ mới và gọi hàm javascript

Url của cửa sổ, nằm trong một tên miền khác (có thể gây ra sự cố bảo mật!?) Và tôi không kiểm soát được nó.

Ví dụ, một mã mà nên cư xử như sau:

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> 

Cảm ơn,
Eran.

Trả lời

17

Rất tiếc, bạn không thể kiểm soát hoặc truy cập vào cửa sổ tên miền chéo. Điều này được thực hiện cho các biện pháp phòng ngừa an ninh. Bạn có quyền kiểm soát URL khác không?

Tuy nhiên, nếu cửa sổ nằm trên cùng một tên miền bạn có quyền truy cập vào cửa sổ và DOM của cửa sổ.

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

+1 nhưng không tiếc là :) – Sarfraz

+0

@ Sarfraz: Ồ, thật không may cho anh ấy ít nhất. Nhưng có, tốt nhất là biện pháp phòng ngừa này đã được thực hiện nếu không mọi người có thể làm rất nhiều điều nghịch ngợm. :) –

+2

Điều này không hiệu quả đối với tôi, vì win.someFunction() sẽ không sẵn sàng/xác định ngay sau khi tạo cửa sổ mới - vì vậy tôi đã có cửa sổ mới gọi window.opener.child_ready(), lần lượt sẽ chạy win.someFunction(). Nếu có một cách tốt hơn, vui mừng khi nghe về nó, nếu không có lẽ điều này sẽ giúp một ai đó. – MSpreij

Các vấn đề liên quan