На HTML странице есть Flex-приложение. Как при нажатии PgUp/PgDn в этом приложении запретить дальнейшую передачу соответствующего события в браузер, или хотя бы как-то его перехватить в Javascript?
Это нужно для того, что бы при работе с Flex-приложением, в котором на эти клавиши назначены определенные действия, браузер не прокручивал страницу.
Пробовал во Flex делать так (проверку на код кнопки не привожу):
Код:
protected function onKeyDown(event:KeyboardEvent) : void
{
event.preventDefault();
event.stopPropagation();
event.stopImmediatePropagation();
}
А в Javascript делал так:
Код:
window["flexObject"].onkeydown = keydown;
function keydown(event)
{
if (!event) event = window.event;
if (event.preventDefault) event.preventDefault();
if(event.stopPropagation) event.stopPropagation();
event.cancelBubble=true;
return false;
}
Не работает. Причем если обработчик keydown повесить на HTML документ:
Код:
window.onkeydown = document.onkeydown = keydown;
И нажимать кнопки, когда фокус не на Flex-приложении, то все работает нормально (страница не прокручивается).
Еще пробовал повесить обработчик в Javascript на событие scroll:
Код:
window.onscroll = document.onscroll = scroll;
function scroll(event)
{
document.body.scrollTop = 0;
}
Так работает, только заметно, как окно мелко так и неприятно подергивается несколько раз - то есть тоже не подходит.
Что делать - не знаю. Догадываюсь, что можно как-то повесить обработчик события keyDown в Javascript на flash-объект, но в интернете не могу найти. Кто сталкивался с таким - подскажите.