为了兼容Netscape,js中对事件的捕捉要做适当的修改
ie中的event.keyCode和event.srcElement在Netscape中是不能使用的。
Netscape中重点是
document.captureEvents(Event.KEYDOWN);
完整代码是:
var ns4 = (navigator.appName=="Netscape")? true:false;
var ie4 = (document.all)? true:false;
function keyDown(s)
{
if (ns4) {
var Key=e.which;
}
else if (ie4) {
var Key=event.keyCode;
}
alert(Key);
}
if (ns4) document.captureEvents(Event.KEYDOWN);
document.onkeydown = keyDown;
event.srcElement在Netscape中则可以使用Event.target来代替。
以上代码可以同时工作于IE 和 Netscape。
在IE中屏蔽掉某些键,当判断出要屏蔽的键后,可以用:window.event.returnValue=false;
在NS中event.preventDefault();
function isIE(){
var agentStr=navigator.userAgent;
if(agentStr.indexOf("MSIE")!=-1)
{
return true;
}
else{
return false;
}
}
function checkInt(evt){
evt = evt ? evt : (window.event ? window.event : null);
var key;
key=isIE()?evt.keyCode:evt.which;
if (key < 48 || key > 57){
if(isIE()) evt.returnValue = false;
else evt.preventDefault();
}
}
<INPUT name="LineHeight" id="LineHeight" value="20" size=7 onkeypress="checkInt(event)" />