【发布时间】:2016-03-11 12:56:45
【问题描述】:
请考虑这个测试:
主文件:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
var secondwindow = false;
$(function() {
secondwindow = window.open("secondwindow.html");
$(secondwindow).load(function() {
secondwindow.setWindow(window);
})
$("#custom").click(function() {
$(document).trigger("custom");
});
});
</script>
</head>
<body>
<button id="click">Click event</button>
<button id="custom">Custom event</button>
</body>
</html>
第二个(弹出)文件:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
var mainwindow = false;
function setWindow(obj) {
mainwindow = obj;
$(mainwindow.document).on("click", function() {
$("body").append("<p>Click event from main window</p>");
});
$(mainwindow.document).on("custom", function() {
$("body").append("<p>Custom event from main window</p>");
});
};
</script>
</head>
<body>
</body>
</html>
我的目标是在第二个窗口中为主窗口中的自定义事件添加一个事件监听器。
我发现,这个测试可以证明,监听其他窗口的事件适用于“标准”事件,如点击,而不适用于自定义事件。
你能告诉我这是 jQuery 的限制还是我遗漏了什么?
(很抱歉,我无法将该代码放入 jsfiddle 中,因为 window.open 不能很好地与 jsfiddle 配合使用)
【问题讨论】:
标签: javascript jquery jquery-events