Javascript 检查输入是否聚焦(空格键正在使用)

Javascript 检查输入是否聚焦(空格键正在使用),javascript,jquery,Javascript,Jquery,我刚刚遇到了这个问题。我正在使用空格键播放/暂停页面上的一个主要播放器。在做一些测试时,我发现如果我输入搜索或评论并按下空格键,它只会继续播放并暂停播放器,这会让人恼火。我正在寻找检查输入是否集中的方法,而不是将空格键用于播放/暂停,或者将其用于播放暂停,但找不到解决方案 在逻辑方面,我需要做如下的事情 if (unicode == 32 "SPACEBAR" && "No input is focused, so spacebar is not used for typing

我刚刚遇到了这个问题。我正在使用空格键播放/暂停页面上的一个主要播放器。在做一些测试时,我发现如果我输入搜索或评论并按下空格键,它只会继续播放并暂停播放器,这会让人恼火。我正在寻找检查输入是否集中的方法,而不是将空格键用于播放/暂停,或者将其用于播放暂停,但找不到解决方案

在逻辑方面,我需要做如下的事情

if (unicode == 32  "SPACEBAR" && "No input is focused, so spacebar is not used for typing ") {

//Some stuff here

 }

检查document.activeElement


您可以尝试为此使用
document.activeElement
,并检查类型

例如:

document.activeElement.nodeName === 'INPUT'
因此,您的if应该是:

if( unicode == '32' && document.activeElement.nodeName !== 'INPUT' ) {
    // play/pause video
}

使用事件目标属性:

$(document).on('keydown', function (e) {
       if(!$(e.target).is('input[type=text]') && unicode === 32) {
           //stuff here
       }
    });

按键侦听器连接在哪里?请尝试将其附加到“播放/暂停”输入。@Pietu1998它是一个$(document).keydown,这样用户在页面上的任何位置都可以随时使用空格键播放“暂停”。这应该保持原样,但我需要检查用户当前是否试图评论或搜索某些内容,而不是给空格键正常的功能。这里强制类型无用,所以最好使用===所以我会像
var userIsTyping=document.activeElement.nodeName==='INPUT'
那样使用它,然后在if语句
unicode==32&!用户输入
很抱歉再次询问,对于this@Ilya请提供实际的IF条件,我将修改它。它只是检查它是否是一个空格键,所以
IF(unicode==32){}
,然后在这样的IF语句中处理播放暂停