当浏览器的搜索栏处于打开状态时,如何检测Esc键?

7

在我的网站上,我提供了一个编辑器窗口(一个简单的包含文本区域的HTML div)。它可以通过按下“Esc”键关闭。

Javascript代码:

$(document).keyup( function(e)
{
    // ESCAPE KEY closes editor window
    if(e.which == 27)
    {
        // trigger cancel button to hide the editor window
        $('#cancelbtn').click();
        return;
    }
});

问题:

用户可能使用浏览器搜索栏:

浏览器搜索栏

当用户按下 ESC 键关闭搜索时,它也会触发JavaScript代码。因此编辑器窗口被关闭。

如何检测浏览器的搜索栏是否打开?然后不触发 ESC 键取消。

1个回答

2
我认为你需要使用keydown而不是keyup来防止执行,因为在搜索栏关闭后,它会自动将焦点设置为最后一个拥有焦点的元素。此外,你可以在条件中包含以下代码,以确保只有在文本区域中$('#myTextArea').is(':focus')有焦点时才会执行。

那真的起作用了。我用 keyup 替换了 keydown。多么简单的修复,太棒了!... 注意:它确实解决了我的问题,但并没有回答如何检测活动搜索栏的主要问题。 - Avatar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接