4

如果光标焦点不在文本字段中,我正在尝试制作一个 Safari 扩展程序。但是,以下用于检测焦点是否不在文本字段中的代码不起作用。

    if ($(document.activeElement).attr("type") != "text" 
       && $(document.activeElement).attr("type") != "textarea") {
          ..do something
    }
4

3 回答 3

15

保持简单:

var el = document.activeElement;

if (el && (el.tagName.toLowerCase() == 'input' && el.type == 'text' ||
    el.tagName.toLowerCase() == 'textarea')) {
  // focused element is a text input or textarea
} 
于 2012-04-27T03:15:47.533 回答
1

您可以使用 jquery 来实现这一点

$('input[type="text"]').focus(function() {
   alert('Focused');
});
于 2012-04-27T01:59:13.667 回答
-2
$("input[type=text]").filter(":not(:focus)").css("background","#ff0000");

$("input[type=text]").focus(function(){
    $(this).css("background","#ffffff");
});

$("input[type=text]").blur(function(){
    $(this).css("background","#ff0000");
});

应将所有非活动输入的背景设置为红色。(在 Chrome 18 中工作)

于 2012-04-27T02:17:35.643 回答