OK, khi tôi tìm ra "mở" yếu tố trang và gán xử lý theo cách này:
// in the popup page
$(function() {
var openerElement = window.opener.document.getElementById(theElementId);
$(openerElement).click(function() {
alert("Hello World!");
});
});
Sau đó, trước sự ngạc nhiên của tôi, mẹ đẻ "thật" các sự kiện làm việc tốt. Tuy nhiên, sự kiện tùy chỉnh được kích hoạt từ trang mở làm không phải là được chọn bởi trang bật lên. Đó là loại có ý nghĩa, vì mỗi trang có vũ trụ jQuery nhỏ của riêng nó. Tuy nhiên tôi dường như đã sai về trình duyệt không truyền bá sự kiện gốc, vì vậy cảm ơn vì trải nghiệm học tập của ngày hôm nay !! Thông tin
hơn — Từ cửa sổ popup (và tương tự từ bất kỳ con của tài liệu chính), bạn cũng có thể sử dụng
var thing_in_main_window = window.opener.$('#thingId');
tìm tòi trong cửa sổ mở. Tuy nhiên, chỉ cần sử dụng đối tượng jQuery trong trang popup để tìm phần tử đó không thể làm việc, vì jQuery sẽ không đi qua liên kết "window.opener" và đi săn tìm phần tử ở đó. Khi bạn gọi $('#thingId')
trên trang bật lên, jQuery chỉ được gọi là document.getElementById('thingId')
bằng cách sử dụng đối tượng document
cho trang bật lên. Nếu không có phần tử nào được gọi là "thingId" trên trang đó, nó sẽ không được tìm thấy.
câu trả lời ban đầu:
Tôi không nghĩ rằng những gì bạn đang cố gắng làm sẽ làm việc. Trình duyệt sẽ không kích hoạt bất kỳ trình xử lý sự kiện nào trong cửa sổ khác với trình xử lý chứa phần tử đích.
Tuy nhiên, bạn có thể nắm bắt sự kiện trong một cửa sổ và sau đó kích hoạt sự kiện tùy chỉnh trong cửa sổ khác. Khi bạn làm điều đó, có thể bạn sẽ muốn kích hoạt sự kiện thông qua đối tượng jQuery trên trang đó. Nói cách khác, bạn sẽ làm điều này:
$('#thing').click(function() {
otherWindow.jQuery.trigger("thing-clicked");
});
Sử dụng firebug firebug và kiểm tra lỗi. Sau đó, bạn sẽ biết thời tiết đó là bảo mật hoặc lỗi mã đơn giản. Mã mẫu sẽ giúp ích. – nebkat
Bạn có thể đăng một số ví dụ về kích hoạt bạn đang cố gắng không? Tôi nghĩ rằng bạn có thể đang cố gắng làm điều đó trên các yếu tố phù hợp với bộ chọn trong cửa sổ hiện tại, chứ không phải là cái mở, thường là như vậy. –
Tôi chắc chắn có yếu tố chính xác từ cửa sổ thích hợp. –