这将是一个奇怪的问题,但是这里有.我有一个页面,我以大格式显示照片,如灯箱.当按ESC时,我关闭页面并将用户返回到他来自的页面,以正常格式显示照片:
$(document).keyup(function(e) {
if (e.keyCode == 27) {
var closeURL = $('.close').attr('href');
window.location = closeURL;
}
});
Run Code Online (Sandbox Code Playgroud)
但是,在同一个灯箱页面上也是一个可能包含嵌入式Youtube视频的侧面板.用户可以使用Youtube播放器的标准视频控件将该视频放大到全屏.如果用户在该场景中点击ESC,它将关闭全屏视频并返回灯箱页面(标准的嵌入式播放器行为,这就是我想要的),但是,ESC键事件也会触发我关闭灯箱的键盘代码,在这种特定情况下不受欢迎.
我发现这种情况在Chrome中存在,但在Firefox中却没有.基本上我想要的是我的ESC代码在按ESC键关闭Youtube播放器时不被触发,但只有当用户在观看照片时(而不是视频)点击ESC时才触发它.
我正在调查event.target以区分这些情况,但还没有运气.有任何想法吗?
更新:我现在要接受这个仅限Chrome的错误.仍然对解决方案持开放态度
我不相信这是可能的。Flash 播放器在获得焦点时捕获输入 - 例如,如果您在 YouTube 视频中单击“播放”,然后按 Ctrl-W 关闭选项卡,则直到您单击视频外部的页面并将焦点返回到时,该选项卡才会关闭。浏览器。
输入控制在聚焦时会有效地传递给另一个进程(Flash 播放器),因此在用户明确将控制权返回给浏览器之前,您将无法捕获输入或对输入进行操作。
| 归档时间: |
|
| 查看次数: |
2176 次 |
| 最近记录: |