我正在尝试检测当前 Activity 元素是否为任何类型的输入字段。目前我有这个:

var activeElement = document.activeElement

if (activeElement && (activeElement.tagName.toLowerCase() === 'input' ||
    activeElement.tagName.toLowerCase() === 'textarea' ||
    activeElement.tagName.toLowerCase() === 'select' ||
    activeElement.tagName.toLowerCase() === 'button')) {
    return false
}

有一个更好的方法吗?我正在使用Vue JS,因此如果Vue API也有解决方案,那也是可以的。

最佳答案

您可以将要检查的所有元素类型放入数组中,并检查其中是否包含 Activity 的Element:

var activeElement = document.activeElement;
var inputs = ['input', 'select', 'button', 'textarea'];

if (activeElement && inputs.indexOf(activeElement.tagName.toLowerCase()) !== -1) {
    return false;
}

09-28 00:51