Tôi đã có một cửa sổ bật lên cung cấp dữ liệu cho cha mẹ của nó. Sử dụng window.opener.document.data = data_from_popup;
Javascript truyền dữ liệu từ cửa sổ con đến cửa sổ chính, lỗi IE?
Điều này hoạt động tốt trong FF, nhưng trong IE (6/7) dữ liệu có thể được truy cập trong thời gian cửa sổ bật lên vẫn được hiển thị. Khi tôi đóng cửa sổ bật lên, có vẻ như dữ liệu được thu thập rác.
Tôi đã cố gắng sử dụng một hàm clone() cho các dữ liệu nhận được từ popup:
window.opener.add_data(data_from_popup);
và phụ huynh:
function add_data(data_from_popup) {
data = clone(data_from_popup);
}
Nó phần nào hoạt động, nhưng trong điều kiện nhất định chức năng clone()
dường như recurse vô hạn.
Bạn đã bao giờ trải nghiệm điều tương tự chưa, và có cách nào để ngăn chặn điều đó mà không cần sử dụng chức năng sao chép không?
Bạn lưu trữ dữ liệu trên trình mở như thế nào? Cụ thể, bạn đã lưu trữ dữ liệu phức tạp (đối tượng, mảng, ngày tháng) qua window.opener? –
Tôi đã sử dụng 2 1. window.opener.foo = somevalue, nhờ đó mà lưu trữ một biến toàn cầu "foo" trên cửa sổ đang mở, hoặc tôi sẽ mở một cửa sổ popup và gọi một cuộc gọi lại ... nói window.opener.myCallback (someDataObj); nơi hàm gọi lại của tôi mở bất cứ điều gì nó muốn/cần với dữ liệu. – scunliffe
Thú vị. Hai ví dụ là những gì phá vỡ trong IE. Khi người dùng đóng cửa sổ con, tham chiếu của trình mở đối với dữ liệu chỉ là f *** ed. – JPot