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?