防止在按下AJAX自动保存和退格键期间出现浏览器后退行为

时间:2018-07-23 19:39:17

标签: javascript browser lost-focus

这个问题是故意含糊的,因为我不想限制潜在的解决方案。

页面:

  1. 编辑器控件(如果需要的话,为CuteEdit)
  2. 触发回发和自动保存的AJAX计时器。
  3. 其他内容(文本,提交按钮等)
  4. 无导航(页面中的链接等)
  5. 全部显示在浏览器窗口中。

问题: 如果在计时器触发时用户按下Backspace键,则浏览器的运行就像单击了浏览器的后退按钮一样。当用户在最后键入的句子上退格并按住自动重复键时,这种情况最常见。

分析: 某些浏览器(firefox,edge)使用退格键来返回页面。但是,如果焦点是输入,则会禁用此功能。我最好的假设是,当计时器触发时,将失去对输入的关注,浏览器会将退格键用作浏览器的后退命令。

选项

  1. 使用Javascript捕获onunload事件并禁用浏览器返回功能。
  2. 在没有工具栏的弹出窗口中打开编辑器,因此没有“返回”。
  3. 当编辑器不在焦点时,以某种方式禁用键盘输入。
  4. 我没想到的事情。

在这种情况下,我最好的选择是什么?

顺便说一句。如果有人要建议服务器端,则这是C#.Net 4.5。但是我没有对其进行标记,因为它与该问题基本上无关。

0 个答案:

没有答案