一个奇怪的问题,但是我会尽力解答。我有一个页面,在该页面上以大尺寸显示照片,就像灯箱一样。当按下ESC键时,关闭页面并将用户返回到他来自的页面,在该页面上以正常格式显示照片:
然而,在同一灯箱页面上,还有可能包含嵌入的Youtube视频的侧面板。用户可以使用Youtube播放器的标准视频控件将该视频放大到全屏。如果用户在这种情况下按ESC键,则会关闭全屏视频并返回到灯箱页面(标准嵌入式播放器行为,这也是我想要的),但是,ESC键事件同时触发了我的keyup代码,关闭了灯箱,在这种特定情况下是不可取的。
我发现在Chrome中存在这种问题,但在Firefox中不存在。本质上我希望当用户按ESC键关闭Youtube播放器时,我的ESC代码不会被触发,但当用户观看照片(而不是视频)时,只有在用户按ESC键时才会触发。
我一直在研究event.target以区分这些情况,但尚未找到解决办法。有什么想法吗?
更新:目前我将接受这个仅限于Chrome的bug。不过还是愿意听取解决方案的建议。
$(document).keyup(function(e) {
if (e.keyCode == 27) {
var closeURL = $('.close').attr('href');
window.location = closeURL;
}
});
然而,在同一灯箱页面上,还有可能包含嵌入的Youtube视频的侧面板。用户可以使用Youtube播放器的标准视频控件将该视频放大到全屏。如果用户在这种情况下按ESC键,则会关闭全屏视频并返回到灯箱页面(标准嵌入式播放器行为,这也是我想要的),但是,ESC键事件同时触发了我的keyup代码,关闭了灯箱,在这种特定情况下是不可取的。
我发现在Chrome中存在这种问题,但在Firefox中不存在。本质上我希望当用户按ESC键关闭Youtube播放器时,我的ESC代码不会被触发,但当用户观看照片(而不是视频)时,只有在用户按ESC键时才会触发。
我一直在研究event.target以区分这些情况,但尚未找到解决办法。有什么想法吗?
更新:目前我将接受这个仅限于Chrome的bug。不过还是愿意听取解决方案的建议。