【问题标题】:Preventing backspace from navigating to the previous page when SELECT is focused and open当 SELECT 聚焦并打开时,防止退格键导航到上一页
【发布时间】:2016-06-08 21:55:36
【问题描述】:

在我急于告诉我先搜索之前......我已经尝试过了。在尝试了多种解决方案之后没有任何运气。

这个链接看起来应该可以工作,但实际上并没有。 Stackoverflow link to preventing backspace

我尝试使用该脚本。我还尝试自己(使用keyup, keydown, keypress)和returning false, preventDefault, stopPropagation 等来获取密钥。似乎没有任何效果。

捕捉关键事件确实会阻止它在任何其他元素被聚焦或只是身体被聚焦时导航回来。这有帮助,但不能解决我的问题。

我发现另一个使用纯javascript的解决方案,没有jQuery,它具有相同的效果(选择聚焦和打开时仍然导航)。

如果用户选择了一个选项,然后按退格键,它不会返回导航,但由于某种原因,如果 SELECT 仍然打开,它会将他们引导离开页面。

我考虑过的一个解决方案是使用body onunload 事件来提示用户是否要离开页面,但是当他们提交表单或单击页面上的链接时,我必须处理这个问题一个理想的解决方案。

当前代码(许多不同的尝试):

$(document).on('keyup keydown keypress', function(e){
    var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
    if(key == 8){
        console.log('backspace');
        e.preventDefault();
        e.stopPropagation();
        return false;
    } else {
        console.log('keypress');
    }
});

真诚感谢任何帮助。谢谢。

[编辑] 我使用的是 Google Chrome 版本 48.0.2564.116 m

【问题讨论】:

    标签: javascript jquery browser cross-browser


    【解决方案1】:

    我遇到了类似的问题;我不知道为什么,但是 $(document) 选择器没有捕获选择元素。 试试('*').on('keydown', function(e){...});,这对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-02
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      • 2014-12-17
      相关资源
      最近更新 更多