JS onkeypress兼容性写法详解
要求实现输入密码后按回车,触发后台事件。看似十分简单的需求,可是却碰到不少难题啊。
HTML内容中主要有一个密码输入文本框,还有一个按钮,用来触发后台事件。
1. TextBox文本框获得焦点后直接回车,页面会刷新。
经过代码仔细研究,原来是当页面中只有一个文本框控件时,当按回车健页面将刷新。
处理方法:在页面中加入一个隐藏的TextBox控件。
具体原理不明!
2. 用Jquery实现方法:
$(document).ready(function(){ $("#tbPassword").focus(); $('#bPassword').keydown(function(e){ if(e.keyCode == 13){ $("#ctl00_ContentBody_btnAccept_linkButton")[0].click(); } }); });
3. 因为种种原因不能采用Jquery的实现方法,只好改用JS,它的兼容性就是一个最头疼的问题了。
document.getElementByIdx_x_x("tbPassword").onkeypress = function(event){ var keynum; if(window.event) // IE { keynum = window.event.keyCode; } else if(event.which) // Netscape/Firefox/Opera { keynum = event.which; } if (keynum == 13) document.getElementByIdx_x_x('ctl00_ContentBody_btnAccept_linkButton').click(); }
说明:
在IE下读取键盘按键:
keynum = event.keyCode; // 字母d,keynum=100 keychar = String.fromCharCode(keynum); // 将keynum转换成字符d
在FireFox中读取键盘按键:
keynum = event.which; // 字母d,keynum=100 keychar = String.fromCharCode(keynum); // 将keynum转换成字符d
如IE中,只有keyCode属性,而FireFox中有which和charCode属性,Opera中有keyCode和which属性等。
因此,在Jquery中已经解决这种兼容性问题。
以上就是本文的全部内容,希望对大家的学习有所帮助。
相关推荐
-
js事件源window.event.srcElement兼容性写法(详解)
如下所示: <html> <body> <p>一个好处就是 我想让body(或其他元素内)的某些对象响应事件 就不用挨个儿去写 只要在外层上写一个 然后检查event.srcElement.tagName或其他属性是不是你想要的来决定是否响应事件就可以了.不过好像event.srcElement在ff里不起作用 </p> <p>比如</p> <p> <input value="input">
-
IE与Firefox下javascript getyear年份的兼容性写法
IE与Firefox下javascript getyear年份不同浏览器 JavaScript 的getyear年份函数兼容性问题 先举个例子 用 Firefox 上一些网站会看到这样的提示 现在时间是 106年8月8日 而用 ie 浏览器的话就显示正常的 2006年8月8日 原因就是 javascript 的兼容性问题 var today = new date(); var year = today.getYear(); 在 Firefox 里面 getYear 返回的是 "当前年份-1900
-
Javascript selection的兼容性写法介绍
复制代码 代码如下: function getSelectedText() { //this function code is borrowed from: http://www.codetoad.com/javascript_get_selected_text.asp var txt = ""; if (window.getSelection) { txt = window.getSelection(); } else if (window.document.getSelection
-
常用原生JS兼容性写法汇总
就来总结一下简单的东西 备注:一下的方法都是包裹在一个EventUtil对象里面的,直接采用对象字面量定义方法了... ①添加事件方法 addHandler:function(element,type,handler){ if(element.addEventListener){//检测是否为DOM2级方法 element.addEventListener(type, handler, false); }else if (element.attachEvent){//检测是否为IE级方法 ele
-
详解js几个绕不开的事件兼容写法
本文介绍了详解js几个绕不开的事件兼容写法,分享给大家,具体如下: 1.键盘事件 keyCode 兼容性写法 var inp = document.getElementById('inp') var result = document.getElementById('result') function getKeyCode(e) { e = e ? e : (window.event ? window.event : "") return e.keyCode ? e.keyCode :
-
JS onkeypress兼容性写法详解
要求实现输入密码后按回车,触发后台事件.看似十分简单的需求,可是却碰到不少难题啊. HTML内容中主要有一个密码输入文本框,还有一个按钮,用来触发后台事件. 1. TextBox文本框获得焦点后直接回车,页面会刷新. 经过代码仔细研究,原来是当页面中只有一个文本框控件时,当按回车健页面将刷新. 处理方法:在页面中加入一个隐藏的TextBox控件. 具体原理不明! 2. 用Jquery实现方法: $(document).ready(function(){ $("#tbPasswo
-
NodeJS自定义模块写法(详解)
如下所示: //1.创建测试模块js文件(我这里命名为test.js) //2.添加测试方法 function test(){ console.log('Test Success!'); } //3.公开该方法到node模块 //exports.test(这个是public的方法名,外部调用的时候,使用这个方法名) exports.test = test; //4.测试(在另一个js文件中引入这个模块,并调用对应测试函数,两个js文件在同一目录下) const testModule = requ
-
JS Attribute属性操作详解
Attribute是属性的意思,文章仅对部分兼容IE和FF的Attribute相关的介绍. attributes:获取一个属性作为对象 getAttribute:获取某一个属性的值 setAttribute:建立一个属性,并同时给属性捆绑一个值 createAttribute:仅建立一个属性 removeAttribute:删除一个属性 getAttributeNode:获取一个节点作为对象 setAttributeNode:建立一个节点 removeAttributeNode:删除一个节点 a
-
基于wordpress的ajax写法详解
想针对一个wordpress的模板程序进行更改,想到ajax的方便,就研究了一下. 以下是使用方法和代码: js页面如下 <script> var ajaxurl = '<?php echo admin_url('admin-ajax.php')?>'; function getVideo(id){ //必须使用以下里面才能正常使用jquery jQuery(document).ready(function($){ var data={ tape:id, //这里尤为重要,acti
-
Vue.js的模板语法详解
Vue.js 模板语法 Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据. Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统. 结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上. 使用"Mustache"语法 (即用双大括号包裹) 的文本插值: <span>Message: {{ msg }}</span>
-
JS前端面试题详解之手写bind
目录 bind 的用法 this 的指向问题 积累参数 实现一个 bind 结尾 大家好,我是前端西瓜哥,今天我们用 JS 来实现内置的 bind 方法. bind 的用法 在实现之前,我们先学习一下 Function.prototype.bind 的用法. function.bind(thisArg[, arg1[, arg2[, ...]]]) bind 是函数特有的一个方法,可以创建一个绑定了 this 的新函数. 接受的参数为如下. 第 1 个参数 thisArg:用于修改 this 指
-
JS ES5创建常量详解
目录 前言 ES 5 创建常量 Object.defineProperty 的基础用法 创建常量 常量居然可以修改值? 兼容性 前言 ES6 刚推出的时候,let和const应该是大多数人学习ES6的第一个知识点. 其中const可以用来定义 常量 ,将不需要改变的数据定义成一个常量. 但其实在ES6之前我们也是有办法定义常量的. ES 5 创建常量 Object.defineProperty 的基础用法 在ES6之前是没有const的,如果需要定义常量,可以使用Object.definePro
-
js正则表达式常用函数详解(续)
正则表达式对象的方法 1.test,返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式.如果存在则返回 true,否则就返回 false. 2.exec,用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组. 3.compile,把正则表达式编译为内部格式,从而执行得更快. 正则表达式对象的属性 1.source,返回正则表达式模式的文本的复本.只读. 2.lastIndex,返回字符位置,它是被查找字符串中下一次成功匹配的开始位置. 3.input ($_),返回
-
JS库之Three.js 简易入门教程(详解之一)
开场白 webGL可以让我们在canvas上实现3D效果.而three.js是一款webGL框架,由于其易用性被广泛应用.如果你要学习webGL,抛弃那些复杂的原生接口从这款框架入手是一个不错的选择. 博主目前也在学习three.js,发现相关资料非常稀少,甚至官方的api文档也非常粗糙,很多效果需要自己慢慢敲代码摸索.所以我写这个教程的目的一是自己总结,二是与大家分享. 本篇是系列教程的第一篇:入门篇.在这篇文章中,我将以一个简单的demo为例,阐述three.js的基本配置方法.学完这篇文章
随机推荐
- 关于nginx+php5.3.8+eclipse3.7工作空间的配置方法
- c#裁剪图片后使用zxing生成二维码示例分享
- ASP.NET Core项目配置教程(6)
- js replace替换所有匹配的字符串
- 说说C#的async和await的具体用法
- MySQL 数据库对服务器端光标的限制
- MySQL数据库遭到攻击篡改(使用备份和binlog进行数据恢复)
- Mysql复制表结构、表数据的方法
- Nodejs实现多人同时在线移动鼠标的小游戏分享
- python time模块用法实例详解
- Python实现excel转sqlite的方法
- javascript函数中参数传递问题示例探讨
- 详细解读Ruby当中的条件判断语句
- 利用jQuery实现打字机字幕效果实例代码
- javascript针对不确定函数的执行方法
- Android触摸事件传递机制初识
- Android设置桌面背景图片的实现方法
- Linux下的高可用性方案研究
- 网络基础版各种命令行集锦
- vue实现前进刷新后退不刷新效果