屏蔽在页面中输入筐esc按键

1.在开发网页的时候,我们要经常的用到文本输入框,但是在ie环境中,
        如果用户在文本区域内输入了很多的信息,但是一不小心按下了esc键的话,
        那么用户辛苦输入的东西就会没有,所以我们就要删除这个用户不友好的东西。
        2.在考虑如何实现之前,我们要确定这样的漏洞在什么样的环境下出现。
        经过测试,在IE 中普遍有这种现象,但是在FIREFOX各个版本中均未出现过,
        为此可以确定这是在IE 中的漏洞,其他的非主流的浏览器由于我这里没有,
        所以没有进一步测试。
        3.解决问题的方法:既然是在IE 中出现的问题,我们就好办了,
        进一步的研究发现,按下esc按键的到的keyCode 为27,那么是不是我们可以判断
        window.event.keyCode ==27,然后不执行下边的代码就可以了好了,错误,嘎嘎,
        你要这样的县就错误了,其实微软在给我们强迫的不好用的软件的时候,
        还是会有一些解决这些软件漏洞的一些方法,在这里我们可以使用window.event对象
        的returnValue 这个属性,保证后边的代码不被执行(这样说也许不是十分的准确,
        或许叫别的解释更好一些),但是还有一个问题,我们应该在什么时候调用这个方法那,
        文本框的事件有好几个,究竟要放在那个事件上那?
        经过进一步的探索发现,Esc按键在删除输入内容的时候是在onkeydown 中发生的,
        所以如果你把下边的函数给onkeypress 或者是onkeyup的时候还是不会有作用的,
        自可以在onkeydown中才可以保证你的输入不会被删除。
        4.接下来我们看一个例子;
        <textarea name="textfield" cols="100" rows="58" οnkeydοwn="igEsc()"></textarea>
        具体的js代码在下边,这个例子中你可以输入很多的数据,然后按下esc按键,我们可以发现,
        什么事情也没有发生,输入筐中还是你输入的东西,再看另一个
        <textarea name="textfield" cols="100" rows="58" οnkeyup="igEsc()"></textarea>
        或者
        <textarea name="textfield" cols="100" rows="58" οnkeypress="igEsc()"></textarea>
        这时候如果你又输入,在按下esc就会发现你输入的到哪里去了,嘎嘎,还是去问盖茨巴!
        以上就是我对如何屏蔽在页面中输入筐esc按键的一点心得,希望可以和大家分享。

function  igEsc()
{
        if(window.event && window.event.keyCode == 27)
        {
                window.event.returnValue = false;
        }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值