Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.01.2010, 09:33
Аватар для Alex VoDevil
Интересующийся
Отправить личное сообщение для Alex VoDevil Посмотреть профиль Найти все сообщения от Alex VoDevil
 
Регистрация: 24.01.2010
Сообщений: 10

Не позволить уйти со страницы не заполнив поле.
Доброго времени суток, уважаемые.
JS я знаю не плохо и по професии я программист. Разжевывать ничего не прошу. Проблема такая: Есть страничка настроек и нужно не позволить юзеру уйти с нее пока он не введет валидный email. Проверка на валидность не проблема. Проблема в том что на страничке много линков, на стороне сервера она собирается из хэдэра-меню-контента-футера (т.е. есть куски разметки которые используются др. страницами) и проект уже на стадии дебага. Все это делает прикрепление функции проверки к каждому линку не возможным. Есть ли в JS событие ухода со странички на которое я мог бы повесить функцию которая проверит валидность email и если что, не отпустит юзера? И опять же, как юзера не отпустить? Вернуть false из функции привязанной к этому событию?
Ответить с цитированием
  #2 (permalink)  
Старый 24.01.2010, 09:46
Аватар для Niar
Труъ кодер
Отправить личное сообщение для Niar Посмотреть профиль Найти все сообщения от Niar
 
Регистрация: 20.01.2010
Сообщений: 194

То есть вы хотите чтобы юзер просто не могу закрыть вашу страничку пока не введет свой мэил?
__________________
http://www.free-lance.ru/users/Nia173 Мой аккуант на free-lance.
Ответить с цитированием
  #3 (permalink)  
Старый 24.01.2010, 11:12
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

Можно попробовать следить за координатами курсора. И когда он уходит выше самой страницы, т.е. юзер танется к кнопочке "X", делать confirm это заставит его немного изменить свои планы
Ответить с цитированием
  #4 (permalink)  
Старый 24.01.2010, 11:18
Аватар для Niar
Труъ кодер
Отправить личное сообщение для Niar Посмотреть профиль Найти все сообщения от Niar
 
Регистрация: 20.01.2010
Сообщений: 194

Вы видно забыли про ctrl+alt+delete. И после этого он 100% на ваш сайт не зайдёт
__________________
http://www.free-lance.ru/users/Nia173 Мой аккуант на free-lance.
Ответить с цитированием
  #5 (permalink)  
Старый 24.01.2010, 11:29
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

В новой Opera 10.50 диалоговые окна вообще не препятствуют переключению и закрытию вкладок, в некоторых браузерах есть галочка для предотвращения последующего появления диалогов.

Событие unload остановить нельзя:
Сообщение от W3C
unload
The unload event occurs when the DOM implementation removes a document from a window or frame. This event is valid for BODY and FRAMESET elements.
Bubbles: No
Cancelable: No
Context Info: None
http://www.w3.org/TR/DOM-Level-2-Events/events.html
так что затея не удастся, разработчики стараются защитить пользователей от таких вот гениальных идей программистов.
Ответить с цитированием
  #6 (permalink)  
Старый 24.01.2010, 12:01
Аватар для Мараторий
Кандидат Javascript-наук
Отправить личное сообщение для Мараторий Посмотреть профиль Найти все сообщения от Мараторий
 
Регистрация: 22.01.2010
Сообщений: 114

Если очень приперло, то можно пройтись по всем ссылкам в документе и понавешивать на них дополнительные обработчики клика, там делать проверку и если надо, останавливать переход по ссылке.
А вообще, конечно, это бред полнейший. Нельзя заставлять юзера что-то делать, если он этого не хочет.
Ответить с цитированием
  #7 (permalink)  
Старый 24.01.2010, 12:34
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

Цитата:
И после этого он 100% на ваш сайт не зайдёт
Стопицотпроцентно. Я подобные мега-ресурсы сразу же средствами роутера баню и всё - прости прощай
Ответить с цитированием
  #8 (permalink)  
Старый 24.01.2010, 14:10
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

onbeforeunload
Ответить с цитированием
  #9 (permalink)  
Старый 24.01.2010, 16:34
Аватар для Alex VoDevil
Интересующийся
Отправить личное сообщение для Alex VoDevil Посмотреть профиль Найти все сообщения от Alex VoDevil
 
Регистрация: 24.01.2010
Сообщений: 10

Речь идет не о "мега-ресурсе", и не о архиве порнухи, как вы наверное могли подумать Речь о многопользовательской системе управления контентом на базе облачных вычислений. Закрытие окна браузера (а уж темболее снятие процесса) вобщем то не рассматривается, нужна просто минимальная защита на дурака. Важно не дать пользователю уйти на другую страницу админки не заполнив поле email (ибо иначе теряется возможность восстановления пароля).

2 B@rmaley.e><e : Да, это наверное именно то что мне нужно, как дойду до решения этой проблемы - копну глубже, спасибо вам.
Ответить с цитированием
  #10 (permalink)  
Старый 24.01.2010, 17:46
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

Я не понимаю зачем это вообще. Есть две ситуации когда нужно менять значение e-mail'а:

1. Когда юзер регается
2. При смене е-mail'а на новый

При этом нужно просто проверять валидность почты. Можно не только валидность но и существование. Плюс использовать код подтверждения почты, высылая его на указанный адрес при смене и регистрации.

К этому уже все привыкли. Зачем придумывать какую то ерунду. А если JS в браузере выключен, то что делать?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37