4
사용자가 swf 파일의 일부 키 조합을 누르려고 시도하는 동안 브라우저 바로 가기를 사용하지 않으려합니다. 내가 파이어 폭스에서 이것을 달성 할 수 있지만, 아래 코드는 8에서 작동하지 않는다. 아래 코드는 포커스가 swf 파일에 없다면 키보드 이벤트를 걸 수있다. 그러나, 내가 필요한 건 사용자가 swf 파일을 조작 할 때 키보드 이벤트를 연결하는 것이다.IE 키보드 이벤트를 연결하는 방법?
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 파일에 포커스가있을 때 실행되지 않습니다.
코드를 수정하면됩니다. shiftKey, ctrlKey 및 altKey 속성은 IE와 W3C 브라우저에서 모두 사용할 수 있습니다. window.event (IE 규약)을 테스트 할 필요가 없습니다. –
그래서 그냥 e.preventDefault()가 이벤트를 취소 할 것임을 의미합니다 – Oki
preventDefault는 Mozilla 브라우저에서는 작동하지만 IE에서는 작동하지 않을 것이라고 생각합니다. 어떤 브라우저를 기반으로하는지에 근거하지 않고 속성이 존재하는지 여부에 따라 조건문을 수행하면 가장 효과적입니다. 보십시오 if (e.preventDefault) {e.preventDefault(); } 대신 if (! window.event) {e.preventDefault(); } –