使用JavaScript检查Firefox上的输入元素
我正在开发一个扩展,它监听元素上的点击事件 现在我有两个问题:使用JavaScript检查Firefox上的输入元素,javascript,firefox,Javascript,Firefox,我正在开发一个扩展,它监听元素上的点击事件 现在我有两个问题: 是否有一种方便的方法来检测元素是否为输入元素?类似于HTML中的input,textarea,以及XUL中的textbox 如果用户单击输入元素,如何获取用户单击的位置? 例如,有一个元素,其值设置为blah,用户在“l”和“a”之间单击,如何获取索引(在本例中为2) 每个事件都有一些在事件参数中传递的数据。您可以执行以下操作来确定单击了什么: function clickFun(event){ if (event.targ
input
,textarea
,以及XUL中的textbox
元素,其值设置为blah
,用户在“l”和“a”之间单击,如何获取索引(在本例中为2)每个事件都有一些在事件参数中传递的数据。您可以执行以下操作来确定单击了什么:
function clickFun(event){
if (event.target.nodeName == "INPUT") {
var type = event.target.getAttribute('type').toLowerCase();
if (type == 'text') {
console.log('text input');
} else if (type == 'checkbox') {
console.log('checkbox');
}
} else if (event.target.nodeName == "TEXTAREA") {
console.log('text area');
}
}
thing.onclick = clickFun;
您可以使用jQuery实现这一点,jQuery提供了一些简单的函数来检查有关元素的信息。如果您想尝试javascript框架,则由您决定
$(':input').click(function(event){
var $this = $(this);
if ($this.is(':text')) {
console.log('text input');
} else if ($this.is(':checkbox')) {
console.log('checkbox');
} else if ($this.is(':textarea')) {
console.log('textarea');
}
});
要在他们单击文本框或区域时获取光标的位置,请尝试签出本文:
对于#1:使用jQuery“:input”选择器很方便,如下所示:
if ($(node).is(":input"))
alert("It's an input element!");
但一般来说,我认为没有一种简单的方法来告诉XUL元素。枚举节点名称将是我能想到的最简单的解决方案