如何设置事件侦听器以使用JavaScript侦听HTML源代码中的文本框?

如何设置事件侦听器以使用JavaScript侦听HTML源代码中的文本框?,javascript,html,firefox-addon,event-listener,Javascript,Html,Firefox Addon,Event Listener,目前正在用JavaScript开发Firefox插件。它会扫描网页以查找特定的东西,如电子邮件地址。是否有一种方法可以让它读取网站的源代码,并将事件侦听器设置为文本框,然后可以检测用户是否在任何网站的文本框中输入电子邮件地址。我不确定这在JavaScript中是否可行,因为我是新手。我需要能够显示一个警报,如果用户在一个网站上键入电子邮件地址,但这将是从一个Firefox插件运行。几乎就像你在网站上使用它进行验证时所显示的一样。但由于这是一个Firefox插件,它的工作方式并不完全相同。 我已经

目前正在用JavaScript开发Firefox插件。它会扫描网页以查找特定的东西,如电子邮件地址。是否有一种方法可以让它读取网站的源代码,并将事件侦听器设置为文本框,然后可以检测用户是否在任何网站的文本框中输入电子邮件地址。我不确定这在JavaScript中是否可行,因为我是新手。我需要能够显示一个警报,如果用户在一个网站上键入电子邮件地址,但这将是从一个Firefox插件运行。几乎就像你在网站上使用它进行验证时所显示的一样。但由于这是一个Firefox插件,它的工作方式并不完全相同。 我已经看过了GreaseMonkey,但它相当混乱,当我试图明确地找出它是否可以做到时,我陷入了困境


我该如何实现这一点才是最好的,甚至是可能的。

您可以这样做:

window.onload = function () {
    var inputs = document.getElementsByTagName('input');
    for (i = 0; i < inputs.length; i++) {
        inputs[i].onkeypress = function () {
            if (this.value.match(/^([0-9a-zA-Z]([-\.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/)) {
                // do something
                alert('Looks like an email address!');
            }
        };
    }
};
window.onload=函数(){
var inputs=document.getElementsByTagName('input');
对于(i=0;i

在此处尝试:

您可以添加一个
事件侦听器,如:

语法

target.addEventListener(type, listener[, useCapture]);
target.addEventListener(type, listener[, useCapture, aWantsUntrusted Non-standard]); // Gecko/Mozilla only

例如

document.getElementById('inputid').addEventListener("keypress", function(){/* Your code */}, false);

您可以使用下面的
jQuery.keyPress()函数
,其中
#target
文本框的
ID

var i=0;
$( "#target" ).keypress(function() {
i++;
console.log("Kep Pressed: " + i);
}

谢谢,这是非常有用的。它工作正常,但在显示警报之前,电子邮件地址尚未完全完成。是否有一种方法可以在用户完成输入后显示警报?
.co
是有效的国家/地区TLD,因此在用户键入
.com
之前,电子邮件地址被视为有效,或者,您只能在输入框失去焦点后验证。将
onkeypress
更改为
onblur
我确实尝试过使用blur,但在切换选项卡等时,它会再次显示警报。我对此有一个问题…如果已经设置了事件处理程序,会发生什么情况,它会替换它吗?