1

我正在使用长池和 Java Servlet 3.0 实现一个应用程序AsyncContext

如您所知,始终应该有一个打开的连接来监听服务器并接收推送通知。我对此没有任何问题,但会出现以下问题:

当在浏览器中的任何位置按下ESC键时(无论是没有选择任何内容或当我专注于文本字段/文本区域时),浏览器都会关闭应该保持打开的请求。

是预期的行为吗?是否有跨浏览器的方法来阻止这种行为?

我使用 Firebug 在 Chrome 和 Mozilla 上对此进行了测试

我知道我可以触发一个附加keyup事件的新请求,body但这可能在使用大量 event.stopPropagation() 的大型 JS 文档中容易出错

LE:萤火虫日志:

在此处输入图像描述

4

1 回答 1

0

Mozilla 上有一个关于此问题的突出错误,该错误于 2010 年首次发布。

https://bugzilla.mozilla.org/show_bug.cgi?id=614304

“按 ESC 会中止在 Firefox 中打开 XMLHttpRequest。这不会在其他浏览器中发生(WebKit 除外,但只有在页面完成加载之前启动 XHR 时)。”

作为一种解决方法,我建议您可以捕获任何 ESC 按下。使用 jQuery,您可以执行以下操作:

$(document).keyup(function(e) {
  if (e.keyCode == 27) { return false };
});
于 2012-11-20T15:49:39.493 回答