Клавиша в JavaScript в IE - PullRequest
       20

Клавиша в JavaScript в IE

0 голосов
/ 28 февраля 2011

У меня есть приложение Flex. Это работает в плеере на HTML-странице. Мне нужно отловить события нажатия клавиш и не дать браузеру IE работать так, как он хочет. Вот некоторый код:

На самом деле, часть, где игрок был положен ..

<html>
<head>
</head>

<body scroll="no" onkeydown=keypress(event)>
<noscript>
    <object id="app" width="100%" height="100%" onkeydown="keypress(event)" onkeypress="keypress(event)">
        //some params
    </object>
</noscript>
</body>
</html>

А вот тот, где я пытаюсь разными способами перехватить ввод с клавиатуры:

<script language="JavaScript" type="text/javascript">

        function keypress(e) {
            alert("Hello from keypress");
        }

        function init() {
            //index
            alert("Init!!!");
            document.getElementById('app').onkeydown = function() {
                alert("Key Pressed - 1");
            };
            document.onkeydown = function() {
                alert("Key Pressed - 2");
            };

            document.getElementById('app').onkeypress = function() {
                alert("Key Pressed - 3")
            };

            document.onkeypress = function() {
                alert("Key Pressed - 4")
            };

            window.onkeydown = function() {
                alert("Key Pressed - 5");
            };
            window.onkeypress = function() {
                alert("Key Pressed - 6");
            };

            document.body.onkeypress = function() {
                alert("Key Pressed - 7")
            };

            document.body.onkeydown = function() {
                alert("Key Pressed - 8")
            };

            if (window.addEventListener) {
                window.addEventListener('keypress', keypress, false);
            } else if (window.attachEvent) {
                window.attachEvent('onkeypress', keypress);
            } else {
                window.onkeypress = keypress;
            }
        }


        window.onload = init;
        document.onload = init;
    </script>

Я не собирался использовать их все вместе, просто собрал их все, чтобы показать вам, что я перепробовал почти все (включая все это с 1 параметром).

Проблема в том, что , что единственное предупреждение, которое я получаю, это "Init !!!". Что с ним не так или что я делаю не так?

Любая помощь будет принята с благодарностью.

Редактировать: Я получаю сообщение "Init" до того, как игрок загрузит его содержимое ... может, проблема где-то там?

1 Ответ

2 голосов
/ 28 февраля 2011

В Internet Explorer события, которые происходят во встроенном элементе управления в элементе <object>, не запускают эквивалентные события в объекте DOM.Они используются встроенным элементом управления, и именно этот элемент управления должен обрабатывать их соответствующим образом.

Это означает, что при фокусировке встроенного приложения Flex ваш код JavaScript не сможет обрабатывать какие-либо ключевые события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...