Ваш синтаксис испорчен. Слишком много других утверждений.
Это проблема здесь:
} else {
//alert(tokenset);
alert('You have passed the token test');
}
EDIT
на основе ваших комментариев, это звучит, как это то, что вы пытаетесь сделать: Вы хотите, чтобы быть в состоянии остановить пользователя от выхода из страницы, если они этого не сделают, нажав на отмену.
В этом случае вы должны использовать событие onbeforeunload
. Вот IE page, и вот Mozilla page на мероприятии.
Идея заключается в том, что в любое время, когда пользователь пытается покинуть страницу (даже закрыв браузер или набрав другой адрес в адресной строке), эта функция вызывается.
Функция ограничена. Вы можете возвращать только строку. Браузер использует это, чтобы запросить пользователя. Если они нажмут «отмена», они останутся на странице. Они могут нажать «ОК» и продолжить покидать страницу. Хотя вы можете возвращать только строку, вам это не нужно. Вы можете проверить условие и вернуть строку только в том случае, если условие прошло. Смотрите мой следующий пример:
window.onbeforeunload = function() {
if (MyTokenIsNotSet) {
return 'You have not released the lock';
}
};
Если маркер установлен, то пользователь не увидит ничего, и они будут просто покинуть страницу. В противном случае это заставит пользователя убедиться, что они действительно хотят покинуть страницу.
Несколько вещей, чтобы отметить:
- Стремительное выглядит по-разному в разных браузерах (формулировка отличается). Я бы попробовал, чтобы ваша строка выглядела нормально, остальная часть подсказки.
- Это не мешает пользователю уйти. Это только напоминает пользователю, что они ДОЛЖНЫ делать что-то другое. Невозможно надежно предотвратить выход из страницы пользователя.
- В дополнение к этому вы должны обработать событие, закончившееся сеансом пользователя (на сервере), и освободить блокировку в это время.
«IE 7 и firefox and opera 10.6» ... когда это НЕ работает? – AGoodDisplayName
Он не работает в Chrome или Safari. –
Что вы подразумеваете под 'It does not work' в Chrome или Safari? –