我有一个包含以下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', '');
事件不会触发(但是如果我在同一页面上执行事件绑定和触发,则会触发)。我尝试了各种各样的绑定变体,例如使用 this 和 this.window
我是不是从绑定方面引用了正确的对象?
(我在Chrome和Firefox中对此进行测试)
修改
David Rodrigues非常友好地创建了这个问题的jsfiddle: http://jsfiddle.net/KARgF/& http://fiddle.jshell.net/vTQ9U/
答案 0 :(得分:2)
我认为问题是$
仍然引用主机窗口中的jquery。如果你这样做:
var w = window.open("somePage.html", '', 'width=500, height=500');
var $ = w.$;
$(w).bind('someEvent', function() { alert('I see the event!'); });
你应该好好去。