我下面的javascript代码完成的功能是屏蔽键盘按键。在firefox中都可以正常运行。但是在ie中运行时,总提示Event未定义。不知道怎么修改,请高手指点迷津。谢了先。document.oncontextmenu = new Function ("return false");// disable "Backspace" key except when focus on "input text" or "password" or "textarea" form element
if (typeof window.event == 'undefined')
{
document.onkeypress = function(e)
{
var realkey=String.fromCharCode(e.which);
if (e.ctrlKey || e.altKey || e.keyCode == 112 || e.keyCode == 113
|| e.keyCode == 114 || e.keyCode == 116 || e.keyCode == 117
|| e.keyCode == 118 || e.keyCode == 120 || e.keyCode == 121 || e.keyCode == 122
|| "'" == realkey)
{
e.preventDefault();
}
var test_var=e.target.nodeName.toUpperCase();
if (e.target.type) var test_type=e.target.type.toUpperCase();
if ((test_var == 'INPUT' && (test_type == 'TEXT' || test_type == 'PASSWORD')) || test_var == 'TEXTAREA')
{
return e.keyCode;
}
else if (e.keyCode == 8 || "/" == realkey)
{
e.preventDefault();
}
}
}
else
{
document.onkeydown = function()
{
var realkey = String.fromCharCode(event.which);
if (event.ctrlKey || event.altKey || event.keyCode == 112 || event.keyCode == 113
|| event.keyCode == 114 || event.keyCode == 116 || event.keyCode == 117
|| event.keyCode == 118 || event.keyCode == 120 || event.keyCode == 121 || event.keyCode == 122
|| "'" == realkey)
{
event.returnValue=false;
}
var test_var=event.srcElement.tagName.toUpperCase();
if (event.srcElement.type) var test_type=event.srcElement.type.toUpperCase();
if ((test_var == 'INPUT' && (test_type == 'TEXT' || test_type == 'PASSWORD')) || test_var == 'TEXTAREA')
{
return event.keyCode;
}
else if (event.keyCode == 8 || "/" == realkey)
{
event.returnValue=false;
}
}
}var midclick = false;
function mouseDown(e)
{
if (!e) var e = event;
if (e.which) midclick = (e.which == 2);
else if (e.button) midclick = (e.button == 1);
if (midclick)
{
e.preventDefault();
//return false;
}}
document.onmousedown = mouseDown;
document.captureEvents(Event.KEYDOWN | Event.MOUSEDOWN);var omitformtags=["input", "textarea"];
omitformtags=omitformtags.join("|");function disableselect(e)
{
var targetTag = e.target.tagName.toLowerCase();
if (targetTag == "a") targetTag = "anchor";
if (omitformtags.indexOf(targetTag)==-1) return false;
}function reEnable()
{
return true;
}if (typeof document.onselectstart!="undefined") document.onselectstart=new Function ("return false");
else
{
document.onmousedown=disableselect;
document.onmouseup=reEnable;
}
if (typeof window.event == 'undefined')
{
document.onkeypress = function(e)
{
var realkey=String.fromCharCode(e.which);
if (e.ctrlKey || e.altKey || e.keyCode == 112 || e.keyCode == 113
|| e.keyCode == 114 || e.keyCode == 116 || e.keyCode == 117
|| e.keyCode == 118 || e.keyCode == 120 || e.keyCode == 121 || e.keyCode == 122
|| "'" == realkey)
{
e.preventDefault();
}
var test_var=e.target.nodeName.toUpperCase();
if (e.target.type) var test_type=e.target.type.toUpperCase();
if ((test_var == 'INPUT' && (test_type == 'TEXT' || test_type == 'PASSWORD')) || test_var == 'TEXTAREA')
{
return e.keyCode;
}
else if (e.keyCode == 8 || "/" == realkey)
{
e.preventDefault();
}
}
}
else
{
document.onkeydown = function()
{
var realkey = String.fromCharCode(event.which);
if (event.ctrlKey || event.altKey || event.keyCode == 112 || event.keyCode == 113
|| event.keyCode == 114 || event.keyCode == 116 || event.keyCode == 117
|| event.keyCode == 118 || event.keyCode == 120 || event.keyCode == 121 || event.keyCode == 122
|| "'" == realkey)
{
event.returnValue=false;
}
var test_var=event.srcElement.tagName.toUpperCase();
if (event.srcElement.type) var test_type=event.srcElement.type.toUpperCase();
if ((test_var == 'INPUT' && (test_type == 'TEXT' || test_type == 'PASSWORD')) || test_var == 'TEXTAREA')
{
return event.keyCode;
}
else if (event.keyCode == 8 || "/" == realkey)
{
event.returnValue=false;
}
}
}var midclick = false;
function mouseDown(e)
{
if (!e) var e = event;
if (e.which) midclick = (e.which == 2);
else if (e.button) midclick = (e.button == 1);
if (midclick)
{
e.preventDefault();
//return false;
}}
document.onmousedown = mouseDown;
document.captureEvents(Event.KEYDOWN | Event.MOUSEDOWN);var omitformtags=["input", "textarea"];
omitformtags=omitformtags.join("|");function disableselect(e)
{
var targetTag = e.target.tagName.toLowerCase();
if (targetTag == "a") targetTag = "anchor";
if (omitformtags.indexOf(targetTag)==-1) return false;
}function reEnable()
{
return true;
}if (typeof document.onselectstart!="undefined") document.onselectstart=new Function ("return false");
else
{
document.onmousedown=disableselect;
document.onmouseup=reEnable;
}
解决方案 »
- 关于Jquery的change事件
- 大家帮我看一下 我这段javescript代码怎么不起作用?
- ext 页面(comb?) 类似dropdownlist 绑定webconfig里面的数组!
- 菜鸟求段JS代码
- IE与FireFox不兼容问题
- 如何将"\"替换成"\\"?
- IE窗口关闭时如何提交JS事件???
- 如何将日期控件的叠放次序在下拉框之上
- 关于现实隐藏菜单的问题
- document.formname,radioname[i].为空或者没有对象,怎门办。我把form和radio的名称也有了,谢谢
- 页面中有10个文本输入框分别为1、2、3、4、5、6、7、8、9、10,如何用javascript脚本实现在键盘中输入该输入框的代号,当前光标直接显示
- 急切~~!!关于梅花雪大大MzTreeView2.0的通过加载字符串生成树的问题!~~希望高手给指点下~~!
{
document.onkeydown = function()
{
var event=window.event //加这个试试
var realkey = String.fromCharCode(event.which);
document.captureEvents(Event.KEYDOWN | Event.MOUSEDOWN);
IE中可以设置setCapture,也可对单个对象设置,然后会扩充到整个文档,包括IE窗口外的地方
<SCRIPT LANGUAGE="JavaScript" defer>
<!--
document.body.setCapture()
//-->
</SCRIPT>
是Netscape等非IE里的,需要判断浏览器类型的
参见
http://www.aspxuexi.com/vbscript/2006-4-26/javascript_key.htm
的解释
区分下浏览器,做不同处理吧