PDA

Просмотр полной версии : trapallkeys в IE


$mival
18.01.2009, 16:26
Приветствую!

Возникла очередная проблема с ИЕ: нажатие клавиши Backspace уходит в браузер и, соответственно,
откатывает нас назад по истории, тогда как фокус поставлен на ввод текста (флеш) и мы пытаемся
стереть символ клавишей Backspace, а не гулять по истории.

только ИЕ, пример:
http://smival.com/files/myworks/test/

1. тыкаем несколько раз по серому прямоугольнику (для истории)
2. пишем текст в белом поле
3. пытаемся стереть символ клавишей Backspace

fscommand("trapallkeys", "true");

function onClick(e:MouseEvent):void
{
ExternalInterface.call("gotoAnchor", Math.random());
}

bt.addEventListener(MouseEvent.CLICK, onClick);

подозреваю, что проблема кроется во вставке флеша

ВАЖНО: глюк происходит только если у нас есть флеш история, которая через знак # (решетка) добавляется к основному URL'у
если у нас история переходов с других сайтов, то такого не наблюдается

UPD:

залочил Backspace в браузере через JS, но осталась такая проблема (она была и до блокировки Backspace): в инпут полях Backspace не работает(то есть текст слева от курсора не стирается!), пока не переключишься надругое приложение (alt+tab) и обратно. хотя текст набирается, даже delete работает :wacko:

Решение:
Экспериментально было установлено, что Backspace начинает работать, если увести со флеша фокус и вернуть его обратно, что и делаем при помощи JS, например:

document.getElementById("some_obj").focus();