javascript快捷键功能,但在文本框中忽略
我设置了一键跳过/更改页面功能。 但当用户想要在输入文本或文本区域中键入“0”时,一键函数也会起作用并切换到另一个页面 当用户使用文本输入或文本区域时,如何忽略此java脚本javascript快捷键功能,但在文本框中忽略,javascript,Javascript,我设置了一键跳过/更改页面功能。 但当用户想要在输入文本或文本区域中键入“0”时,一键函数也会起作用并切换到另一个页面 当用户使用文本输入或文本区域时,如何忽略此java脚本 document.onkeydown=nextpage; function nextpage(){ var event=document.all?window.event:arguments[0]; if (event.keyCode==13) location="#skipcontent"; if (e
document.onkeydown=nextpage;
function nextpage(){
var event=document.all?window.event:arguments[0];
if (event.keyCode==13) location="#skipcontent";
if (event.keyCode==48) location="contact-us.php";
}
检查
target
元素以查看事件的目标元素:
document.onkeydown=nextpage;
function nextpage(e){
var event = document.all ? window.event : e;
switch (e.target.tagName.toLowerCase()) {
case "input":
case "textarea":
case "select":
case "button":
// ...and so on for other elements you want to exclude;
// list of current elements here: http://www.w3.org/TR/html5/index.html#elements-1
break;
default:
if (event.keyCode==13) location="#skipcontent";
if (event.keyCode==48) location="contact-us.php";
break;
}
}
或者,您可以使用正则表达式替代开关
:
document.onkeydown=nextpage;
function nextpage(e){
var event = document.all ? window.event : e;
if (!/^(?:input|textarea|select|button)$/i.test(e.target.tagName)) {
if (event.keyCode==13) location="#skipcontent";
if (event.keyCode==48) location="contact-us.php";
}
}
旁注:您可以考虑使用
addEventListener
,它在所有现代浏览器上都受支持,并且允许每个元素的每个事件都有多个处理程序。如果您必须支持IE8,可以使用一个函数返回到attachEvent
,并为您处理事件对象洗牌。谢谢!!看起来很好。谢谢你的帮助。