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;
}
}
如果用户在文本区域内输入了很多的信息,但是一不小心按下了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;
}
}