Моя цель - записать все события кликов на моем веб-сайте, убедиться, что пользователь все еще вошел в систему, а затем разрешить им продолжить или отменить запрошенное действие на основе результатов вызова ajax, который определяет их текущий статус входа в систему.
Я собираюсь сделать это из-за того, что у пользователей часто открываются окна с несколькими сделанными выборами, запускаются отчеты и открываются внутренние вкладки ... разрешение по умолчанию из-за тайм-аута заставляет пользователей терять свою работу.
Итак, шаг 1: (перехватить все события щелчка)
$(document).ready(function() {
$(document).click(function(event) { fncCheckLogin(event); });
});
Шаг 2: (отменить событие для всех интерактивных объектов в качестве теста)
function fncCheckLogin(objEvent) { objEvent.preventDefault(); }
Шаг 3: (Проверить наличиеСтатус входа)
$.ajax({
type:"POST",
url: "myURL",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType:"json",
complete: function(x){
if(x){
if (!isOpen) {
DoSomeStuff
}
);
isOpen = true;
testMe(objEvent);
}
} else {
if (isOpen) {
isOpen = false;
}
}
}
});
Шаг 4: (запретить действие, если срок действия входа истек)
function testMe(objEvent) { if (isOpen) { objEvent.preventDefault(); }}
Переменная " isOpen " просто определяет, является ли илине запущен скрипт пользователя, вышедшего из системы.Я пытался получить доступ к protectDefault напрямую из вызова ajax, но я переместил его для тестирования.
Я думаю, что моя проблема связана с синхронизацией ... если я добавлю предупреждение на шаге 4 перед оператором if,команда warnDefault работает, но в противном случае - нет.Как будто событие завершается до моего вызова ajax, но я не уверен, что это проблема.
Любая помощь будет высоко ценится ... Спасибо!