JS Подтвердить, ложь, возврат, не работает
Этот текущий фрагмент скрипта, чтобы подтвердить, хочет ли пользователь выйти из системы, не полностью работает в Safari на Mac.
function log_out()
{
ht = document.getElementsByTagName("html");
ht[0].style.filter = "progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)";
if (confirm('Are you sure you want to log out?'))
{
return true;
}
else
{
ht[0].style.filter = "";
return false;
}
}
Это работает, когда пользователь подтверждает, что хочет выйти из системы, хорошо, но когда пользователь нажимает кнопку отмены, они все еще выходят из системы.
Есть идеи?
Заранее спасибо!
2 ответа
Решение
Поместите инструкцию возврата перед вызовом log_out
<a class="rnavtab" href="?do=logout" onclick="return log_out()">Log out</a>
Хорошо, но когда пользователь нажимает кнопку "Отмена", он по-прежнему выходит из системы.
После просмотра вашего кода в комментарии вы разместили:
<a class="rnavtab" href="?do=logout" onclick="log_out()">Log out</a>
?do=logout
срабатывает независимо от того, подтверждает пользователь или нет. Попробуйте вместо этого поставить хеш:
<a class="rnavtab" href="#" onclick="log_out()">Log out</a>
Позже вы можете перенаправить пользователя следующим образом:
window.location = '?do=logout';