在尝试收听用户时,请在输入字段中单击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>
有没有人知道如何解决IE的问题?
答案 0 :(得分:0)
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 );
Note: 并未针对所有浏览器中的所有键(例如ALT,CTRL,SHIFT,ESC)触发onkeypress事件。要仅检测用户是否按下了某个键,请使用onkeydown事件,因为它适用于所有键。