Javascript 控制键+;未在IE中处理的字符
在尝试聆听用户在输入字段中单击Javascript 控制键+;未在IE中处理的字符,javascript,javascript-events,Javascript,Javascript Events,在尝试聆听用户在输入字段中单击CTRL V键(粘贴)时,我们遇到了让IE处理该事件的问题 我希望此解决方案能够跨浏览器兼容 我们使用的代码支持跨浏览器,但只有在Internet Explorer中按住CTRL键时,我们才会遇到问题 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ht
CTRL V
键(粘贴)时,我们遇到了让IE处理该事件的问题
我希望此解决方案能够跨浏览器兼容
我们使用的代码支持跨浏览器,但只有在Internet Explorer中按住CTRL
键时,我们才会遇到问题
<!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=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<input type="text" id="mytest" />
<script type="text/javascript">
window.onload = function()
{
var main_box = document.getElementById('mytest');
window.addEventListener('keypress',
function(evt)
{
evt = evt || window.event;
var charCode = evt.keyCode || evt.which;
var charStr = String.fromCharCode(charCode);
if(evt.ctrlKey && (charStr == 'v' || charStr == 'V'))
{
alert("CTRL+V pressed.");
}
}
);
}
</script>
</body>
</html>
无标题文件
window.onload=函数()
{
var main_box=document.getElementById('mytest');
window.addEventListener('keypress',
功能(evt)
{
evt=evt | | window.event;
var charCode=evt.keyCode | | evt.which;
var charStr=String.fromCharCode(charCode);
if(evt.ctrlKey&&(charStr='v'| | charStr=='v'))
{
警报(“按下CTRL+V”);
}
}
);
}
有人知道如何用IE解决这个问题吗
window.addEventListener('keydown',
function(evt)
{
evt = evt || window.event;
var charCode = evt.keyCode || evt.which;
var charStr = String.fromCharCode(charCode);
if(evt.ctrlKey && (charStr == 'v' || charStr == 'V'))
{
alert("CTRL+V pressed.");
}
}, false );
并非所有浏览器中的所有键(例如ALT、CTRL、SHIFT、ESC)都会触发onkeypress事件。要仅检测用户是否按下某个键,请改用onkeydown事件,因为它适用于所有键
所以。。。那么问题是什么呢?我也不认为拦截操作系统处理的事件比你的应用程序低很多。我会考虑使用非冲突的快捷方式,或者观察输入字段的值的变化。如果浏览器没有义务向Javascript代码报告任何和所有击键,那么实际上您的代码一开始就不应该是“跨浏览器”的。此外,您可以处理一个实际的
粘贴事件:(尽管有MDN链接,但这应该在IEs中工作。)您使用的是哪个版本的IE?