OK, wenn ich das „Opener“ Seitenelement und weise Handler auf diese Weise finden:
// in the popup page
$(function() {
var openerElement = window.opener.document.getElementById(theElementId);
$(openerElement).click(function() {
alert("Hello World!");
});
});
Dann zu meiner Überraschung, native „echte“ Ereignisse gut funktionieren. jedoch, benutzerdefinierte Ereignisse aus der Opener-Seite gefeuert tun nicht werden von der Popup-Seite abgeholt. Das macht Sinn, da jede Seite ihr eigenes kleines jQuery-Universum hat. Ich habe mich jedoch anscheinend geirrt, dass der Browser keine nativen Ereignisse verbreitet, also danke für die heutige Lernerfahrung !!
weitere Informationen — im Popup-Fenster (und in ähnlicher Weise von jedem Kind des Hauptdokuments), können Sie auch
var thing_in_main_window = window.opener.$('#thingId');
verwenden Sachen im Opener Fenster zu finden. Verwenden Sie einfach das jQuery-Objekt in der Popup-Seite, um zu finden, dass das Element nicht funktionieren kann, weil jQuery den Link "window.opener" nicht durchläuft und nach dem Element dort sucht. Wenn Sie auf der Popup-Seite $('#thingId')
aufrufen, wird jQuery einfach document.getElementById('thingId')
mit dem document
Objekt für die Popup Seite aufgerufen. Wenn auf dieser Seite kein Element namens "thingId" vorhanden ist, wird es nicht gefunden.
ursprüngliche Antwort:
Ich glaube nicht, dass das, was Sie versuchen, arbeiten zu tun. Der Browser wird keine Event-Handler in einem anderen Fenster als dem mit dem Zielelement auslösen.
Sie können das Ereignis jedoch in einem Fenster abfangen und dann im anderen Fenster ein benutzerdefiniertes Ereignis auslösen. Wenn Sie das tun, werden Sie wahrscheinlich das Ereignis über das jQuery-Objekt auf dieser Seite auslösen wollen. Mit anderen Worten, Sie würden dies tun:
$('#thing').click(function() {
otherWindow.jQuery.trigger("thing-clicked");
});
Verwenden Sie firefox firebug und überprüfen Sie auf Fehler. Dann wissen Sie, ob es sich um Sicherheit oder einfach nur um einen Codefehler handelt. Beispielcode würde helfen. – nebkat
Können Sie einige Beispiele für die Auslösung veröffentlichen, die Sie versuchen? Ich denke, du versuchst es wahrscheinlich mit Elementen, die mit dem Selektor im aktuellen Fenster übereinstimmen, anstatt mit dem Öffner, das ist normalerweise der Fall. –
Ich habe definitiv das richtige Element aus dem richtigen Fenster. –