我试图在用户尝试按 swf 文件上的某些键组合时禁用浏览器快捷方式。虽然我可以在 Firefox 中实现这一点,但下面的代码在 IE 8 中不起作用。如果焦点不在 swf 文件上,下面的代码能够挂钩键盘事件。但是,我需要的是当用户对 swf 文件进行操作时挂钩键盘事件。
function hookKeyboardEvents(e) {
alert("hooked key");
// get key code
var key_code = (window.event) ? event.keyCode : e.which;
// case :if it is IE event
if (window.event)
{
if (!event.shiftKey && !event.ctrlKey && !event.altKey) {
window.event.returnValue = null;
event.keyCode=0;
}
}
// case: if it is firefox event
else
e.preventDefault();
document[flashId].keyDown(key_code);
}
window.document.onkeydown = hookKeyboardEvents;
当焦点在 swf 文件上时,上面的代码永远不会执行。