Показать сообщение отдельно
  #16 (permalink)  
Старый 25.03.2014, 19:27
Аватар для Hapson
Кандидат Javascript-наук
Отправить личное сообщение для Hapson Посмотреть профиль Найти все сообщения от Hapson
 
Регистрация: 23.07.2013
Сообщений: 122

Вот наглядный пример:
<a href="#" id="link">Link</a>

<script>
EventHandler.add(document.getElementById("link"), click, checkAction);

function checkAction(){
	// функция перехватывает действие пользователя
	// что-то делает...
	// может проверяет форму, если вместо <a> перехватила <form>
	// И теперь функция хочет проверить, не закончилась ли сессия пользователя
	// Она обращается к модулю из общей библиотеки
	// и передает ему элемент, с которого перехватила событие click или submit
	return issetSeance(this);
}

/******/

function issetSeance(elem){
	// упрощенно: если у переданного элемента нет метода click или submit
	// просто вернуть true и не отменять действие пользователя
	if(!elem.click || !elem.submit){return true;}
	// если указанные методы присутствуют, то запустить модуль проверки авторизации
	checkLogin(elem);
    return false;
}

function checkLogin(elem){
	// тут общаемся с сервером
	// в случае успеха делаем
	elem.click() // если не форма
	elem.submit() // если форма
}
</script>

Последний раз редактировалось Hapson, 25.03.2014 в 19:30.
Ответить с цитированием