Почему в IE нет хищников? - PullRequest
1 голос
/ 21 июля 2011

На днях SmashingMagazine подарил миру замечательный подарок . К сожалению, IE (по крайней мере ie7), к моему изумлению и изумлению, имеет проблемы с этим. Кто-нибудь знает, почему код ниже не будет работать правильно в IE7?

Он прослушивает нажатия клавиш и запускает функцию, если она может соответствовать коду конами. Я не очень разбираюсь в событиях JS, поэтому мы будем признательны за любое направление.

var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
            $(window).bind("keydown.raptorz", function(e){
                kkeys.push( e.keyCode );
                if ( kkeys.toString().indexOf( konami ) >= 0 ) {
                    init();
                    $(window).unbind('keydown.raptorz');
                }
            }, true);

РЕДАКТИРОВАТЬ: Кто-нибудь еще может проверить это в IE7, чтобы подтвердить?

Ответы [ 2 ]

1 голос
/ 21 июля 2011

jQuery поддерживает e.which для ключевого кода на случай, если e.keyCode не работает. Поэтому попробуйте изменить e.keyCode на e.which.

Но я думаю, что это true в качестве третьего аргумента в привязке. Уберите это и попробуйте снова.

Вот моя копия в скрипте JS версии, совместимой с IE: Ссылка

ОБНОВЛЕНО: вау, привязка для keydown на $(window) не работала для IE, а $(document.body) не работала для FF, поэтому я сделал $(document), и она работает для обоих ....

Ссылка выше теперь имеет версию, которая работает как для FF, так и для IE как минимум.

0 голосов
/ 21 июля 2011

У меня нет под рукой IE, но я бы поспорил, что это ключевой код, который сбивает вас с толку - я думаю, вам нужно сделать что-то вроде этого, чтобы получить правильный код ключа в кросс-браузерной манере:

var keyPressed = e.keyCode ? e.keyCode : e.charCode;
...