如何设置事件侦听器以使用JavaScript侦听HTML源代码中的文本框?
目前正在用JavaScript开发Firefox插件。它会扫描网页以查找特定的东西,如电子邮件地址。是否有一种方法可以让它读取网站的源代码,并将事件侦听器设置为文本框,然后可以检测用户是否在任何网站的文本框中输入电子邮件地址。我不确定这在JavaScript中是否可行,因为我是新手。我需要能够显示一个警报,如果用户在一个网站上键入电子邮件地址,但这将是从一个Firefox插件运行。几乎就像你在网站上使用它进行验证时所显示的一样。但由于这是一个Firefox插件,它的工作方式并不完全相同。 我已经看过了GreaseMonkey,但它相当混乱,当我试图明确地找出它是否可以做到时,我陷入了困境如何设置事件侦听器以使用JavaScript侦听HTML源代码中的文本框?,javascript,html,firefox-addon,event-listener,Javascript,Html,Firefox Addon,Event Listener,目前正在用JavaScript开发Firefox插件。它会扫描网页以查找特定的东西,如电子邮件地址。是否有一种方法可以让它读取网站的源代码,并将事件侦听器设置为文本框,然后可以检测用户是否在任何网站的文本框中输入电子邮件地址。我不确定这在JavaScript中是否可行,因为我是新手。我需要能够显示一个警报,如果用户在一个网站上键入电子邮件地址,但这将是从一个Firefox插件运行。几乎就像你在网站上使用它进行验证时所显示的一样。但由于这是一个Firefox插件,它的工作方式并不完全相同。 我已经
我该如何实现这一点才是最好的,甚至是可能的。您可以这样做:
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,但在切换选项卡等时,它会再次显示警报。我对此有一个问题…如果已经设置了事件处理程序,会发生什么情况,它会替换它吗?