$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();
Возникла очередная проблема с ИЕ: нажатие клавиши 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();