我试图在用户尝试按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文件上时永远不会执行。
document.body.accessKey = String.fromCharCode(e.keyCode);