在子窗口上绑定jQuery事件

Binding jQuery event on a child window

本文关键字:jQuery 事件 绑定 窗口      更新时间:2023-09-26

我有一个页面,有以下javascript:

var w = window.open("somePage.html", '', 'width=500, height=500');
$(w).bind('someEvent', function() { alert('I see the event!'); });

somePage.html我尝试触发事件:

$(window).trigger('someEvent', '');

事件不会触发(但如果我在同一页面上执行事件绑定和触发器,则会触发)。我尝试过各种各样的绑定,比如使用thisthis.window

我是不是没有从绑定端引用正确的对象?

(我正在Chrome和Firefox中测试)

编辑:

David Rodrigues好心地创建了一个关于这个问题的专栏:http://jsfiddle.net/KARgF/,http://fiddle.jshell.net/vTQ9U/

我认为问题是$仍然指的是主机窗口中的jquery。如果你这样做:

var w = window.open("somePage.html", '', 'width=500, height=500');
var $ = w.$;
$(w).bind('someEvent', function() { alert('I see the event!'); });

你应该可以走了