js 在Firefox按键失效解决办法(不兼容firefox处理办法)

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>网页特效 在firefox按键失效解决办法(不兼容firefox处理办法)</title>
<script  language="网页特效">
 function mykeypress(evt){   
 //兼容ie和firefox获得keyboardevent对象   
 evt = (evt) ? evt : ((window.event) ? window.event : "")
 //兼容ie和firefox获得keyboardevent对象的键值   
 var key = evt.keycode?evt.keycode:evt.which;    
 if(evt.ctrlkey && (key == 13 || key == 10))
 {        
 //同时按下了ctrl和回车键       
 //do something;   
 }
 }
</script>
</head>

<body>
ie和firefox获取键盘值的方法不同,可以理解,firefox下的event.which与ie下的event.keycode相当。关于彼此不同

<script type="text/网页特效">
//by 枫岩@iecn.net
function $(s){
  return document.getelementbyid(s)?document.getelementbyid(s):s;
}
function viewkeyinfo(e){  
  var currkey=0,caps教程lock=0;
  var e=e||event;
  currkey=e.keycode||e.which||e.charcode;
  capslock=currkey >=65 && currkey <=90;
  $("type").innerhtml=e['type'];
  $("currkey").innerhtml=string.fromcharcode(currkey);
  $("decimal").innerhtml=currkey;
  $("keycode").innerhtml=e['keycode'];
  $("charcode").innerhtml=e['charcode'];
  $("caps").innerhtml=capslock;
  $("shiftkey").innerhtml=e['shiftkey'];
  $("ctrlkey").innerhtml=e['ctrlkey'];
  $("repeat").innerhtml=e['repeat'];
  $("which").innerhtml=e['which'];
}

document.onkeypress= viewkeyinfo;
</script>
<p>请按下任意键看测试效果:</p>
type:<span id="type"></span>
 
当前key:<span id="currkey"></span>
 
decimal:<span id="decimal"></span>
 
keycode:<span id="keycode"></span> <strong>注:在ff下,keycode始终为0</strong>
 
which:<span id="which"></span> <strong>注:在ie下,which始终为undefined ; 在opera下,keycode和charcode二者的值相同</strong>
 
charcode:<span id="charcode"></span> <strong>注:在ie、opera下,charcode始终为undefined ; 在ff下,which和charcode二者的值相同</strong>
 
大写:<span id="caps"></span>
 
altkey:<span id="altkey"></span>
 
ctrlkey:<span id="ctrlkey"></span>
 
shiftkey:<span id="shiftkey"></span>
 
repeat:<span id="repeat"></span>
 
<style type="text/css教程" media="all">
body {color:#999;font:normal 14px tahoma,宋体,geneva,arial,sans-serif;}
span {color:#f00;font-weight:bold;padding:0 5px;}
strong {color:#090;font-weight:normal;padding:0 5px;}
</style>

测试结果:
在ie下:
>> 支持keycode
>> 不支持which和charcode,二者值为 undefined

在firefox下:
>> 支持keycode,除功能键外,其他键值始终为 0
>> 支持which和charcode,二者的值相同

在opera下:
>> 支持keycode和which,二者的值相同
>> 不支持charcode,值为 undefined

</body>
</html>

时间: 2024-10-04 17:05:13

js 在Firefox按键失效解决办法(不兼容firefox处理办法)的相关文章

js Firefox 加入收藏夹功能代码 兼容Firefox 和 IE_javascript技巧

完整代码如下:chrome下也有提示,说实话一般这类代码一般都是IE下使用,其它浏览器也只是给个提示了. <script type="text/javascript"> //设为首页 www.jb51.net function SetHome(obj,url){ try{ obj.style.behavior='url(#default#homepage)'; obj.setHomePage(url); }catch(e){ if(window.netscape){ try

解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法_javascript技巧

最近在做博客的目录功能,发现一个在现代浏览器间的一个bug,或是称之为差异,即页面滚动值(scrollTop)的获取与设定. 在此之前先说一下关于页面元素的坐标获取,这张图的经典性不必再提.  实现滚动到某位置功能 一个最主要的功能就是实现点击标题页面滚动,因为我们要滚动到页面某个标题,所以需要计算出滚动这个元素的具体绝对位置,而常用的offsetTop是获取到当前元素与之最近的决定其定位的元素的偏移量,此处不适用. 此处应使用浏览器原生提供的 getBoundingClientRect 接口,

在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法_jquery

easyUI是jquery的一个插件,是民间的插件.easyUI使用起来很方便,里面有网页制作的最重要的三大方块:javascript代码.html代码和Css样式.我们在导入easyUI库后,可以直接复制粘贴里面的代码,从而简单轻便地初步设置网页. 首先导入easyUI函数库: <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css">

JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)_javascript技巧

IE中new Date(strDate)返回无效时间解决方式: 方法一: function getDateForStringDate(strDate){ //切割年月日与时分秒称为数组 var s = strDate.split(" "); var s1 = s[0].split("-"); var s2 = s[1].split(":"); if(s2.length==2){ s2.push("00"); } return

Win7系统搜索功能失效解决办法

  Win7系统搜索功能失效解决方法 1.在桌面上按组合键(win+R)打开"运行窗口"或者点击桌面左下角"开始菜单"找到"运行...",在运行界面输入框输入"regedit",按回车键确认,如下图所示: 2.打开注册表编辑器后,依次展开路径"HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerCabinetState",接着在右边窗

Win7系统搜索功能失效解决办法 三步修改注册表

Win7系统搜索功能失效解决方法 1.在桌面上按组合键(win+R)打开"运行窗口"或者点击桌面左下角"开始菜单"找到"运行...",在运行界面输入框输入"regedit",按回车键确认,如下图所示: 2.打开注册表编辑器后,依次展开路径"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CabinetState",接着

解决javascript:window.close()在chrome,Firefox下失效的问题_javascript技巧

       window.close(),一看就知道是用来关闭浏览器窗口的方法.W3CSchool对该方法的解释如下:方法 close() 将关闭有 window 指定的顶层浏览器窗口.某个窗口可以通过调用 self.close() 或只调用 close() 来关闭其自身.只有通过 JavaScript 代码打开的窗口才能够由 JavaScript 代码关闭.这阻止了恶意的脚本终止用户的浏览器.       在IE中,window.close()能生效,在生效的时候,会弹出提示框,询问你是否关

AutoHotKey让特定用户按键失效

  每次春节假期,表弟他们都很爱使用我的电脑玩4399等网站的小游戏,由于这些人经常用力按ASDF键,我的键盘都换了好几个了.有没有办法可以实现表弟登录电脑时这几个按键就失效,自己登录却不受影响的方法. [解题思路] 之前杂志上已经有人提供了通过专用软件解决的方法,今天我则提供另外一个思路.AutoHotKey是Windows平台下的热键脚本语言,主要用于实现键盘.鼠标的自动按键功能,映射.屏蔽某些按键更是小菜一碟.再配合系统的任务计划功能,就可以实现特定用户登录后自动屏蔽某些按键的效果.本方案

js 键盘记录实现(兼容FireFox和IE)_javascript技巧

主要分四个部分第一部分:浏览器的按键事件第二部分:兼容浏览器第三部分:代码实现和优化第四部分:总结 第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydown,keypress和keyup,它们分别对应onkeydown.onkeypress和onkeyup这三个事件句柄.一个典型的按键会产生所有这三种事件,依次是keydown,keypress,然后是按键释放时候的keyup. 在这3种事件类型中,keydown和keyup比较底层,而keypress比较