Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Событие и window.confirm, Не выполняется в FireFox 
:(
    Опции темы
dead_psh
Дата 28.2.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 13.3.2007

Репутация: нет
Всего: нет



Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <title>Untitled 2</title>
</head>

<body>

<script>
function onkey(e)
{
    if(!e)
        e = window.event;
    if(!window.confirm('Добавить эту букву?'))
        return false;
}
document.onkeydown = onkey;
</script>

<input type="edit">

</body>
</html>


Для справки: Данный пример просто упроченный аналог, он нигде не используется..

Вобще проблема такая: этот скрипт не выполняется должным образом на FireFox. Т.е. при window.confirm событие просачивается, и срабатывает обработчик по дефолту... Перепробовал всевозможные методы борьбы с этим, ничего не помогло. Баг? Может кто сталкивался с таким, и как это можно обойти...Задача: отменить стандартный обработчик при вызове window.confirm...
PM MAIL   Вверх
fidres
Дата 16.12.2008, 05:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 15.11.2006

Репутация: нет
Всего: 1



ты будешь смеятся, но у меня этот код в FF 1.5 сработал (правда сперва добавилась буква, а уж потом только выскочил confirm-диалог. но это у меня в фоксе слишком много напихано видать, притормаживает...)!
а вот в опере-9.х - обломилось.
то бишь конфирм выскакивает, а буковка в эдит - не встремляица.
 smile 

З.Ы. про IE не говорю и так понятно...
 smile 
--------------------
Исправьте ошибку в слове <ХЕРОШО> и я скажу Вам оптимист Вы или пессимист.
PM ICQ   Вверх
ksnk
Дата 16.12.2008, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



dead_psh, Тут, видимо, причуды (баги?) реализации конфирма для файрфокса. В месте вызова конфирма обработчик события принудительно заканчивается и генерируется неопределенный результат. Нижеследующий код выполняется после конфирма и его результат уже ни не что не влияет. Нужно стараться им не пользоватся в обработчике событий. 

Вот так, к примеру, можно заблокировать в этом инпуте клавишу таблуляции.
Еще наверное полезно помнить, что кроме return false броузерописатели напридумывали целый пучек способов тем или другим способом остановить событие. Каждое, по идее, нужно в свое время и в своем броузере, но для простоты можно и так... 
Код

function clearEv(e){
       if (e.preventDefault) e.preventDefault();
       e.cancelBubble = true;
       if(e.stopPropagation) e.stopPropagation();
       return (e.returnValue = false);
}
function onkey(e)
{
    if(!e)
        e = window.event;
    var key = e.keyCode || e.which;
    if (key==9) // табуляция
    {
         return clearEv(e);
    }       
//    if(!window.confirm('Добавить эту букву?'))
//        return false;
}




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0869 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.