弹出对话框时拦截浏览器上的“停止”按钮

时间:2015-01-19 15:45:27

标签: javascript

我有一个网页,可以在网格中加载100个缩略图,类似于Google图片搜索。

这可能需要几秒钟才能完整加载整个页面和图像。

有时候,根据具体情况,我会在第一次使用Jquery UI对话框查看页面时(在document.ready上)弹出一个对话框。

对话框和弹出框通常具有Escape键关闭它们的功能。

然而,我遇到了一个小问题。

如果我在文档准备就绪时弹出一个对话框,并且用户快速按Escape关闭对话框,浏览器将捕获转义键,如果缩略图仍在加载,则取消加载,然后这些图像显示为断开的链接

据我所知,转义键基本上是在做一个浏览器'停止'。但是,如果我加了一个对话框,我还能“禁用”吗?

我试过拦截按键,但似乎不可能阻止浏览器执行它的操作,当按下escape并且仍在加载时。即使我从对话框按键事件发送preventDefault或stopPropagation。

1 个答案:

答案 0 :(得分:2)

将自己附加到文档keydown事件并阻止默认行为。

document.onkeydown = function (event) {
     if (event.keyCode === 27) {
          event.preventDefault();
     }
}