JS Подтверждение, ложь, возврат, не работает - PullRequest
2 голосов
/ 21 ноября 2010

этот текущий фрагмент скрипта для подтверждения того, что пользователь хочет выйти из системы, не полностью работает в 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 ]

3 голосов
/ 21 ноября 2010

Поместите инструкцию return перед вызовом log_out

<a class="rnavtab" href="?do=logout" onclick="return log_out()">Log out</a>
1 голос
/ 21 ноября 2010

Хорошо, но когда пользователь нажимает кнопку «Отмена», он по-прежнему выходит из системы.

После просмотра кода в комментарии, который вы разместили:

<a class="rnavtab" href="?do=logout" onclick="log_out()">Log out</a>

The?do=logout запускается независимо от того, подтверждает пользователь или нет.Попробуйте вместо этого ввести хеш:

<a class="rnavtab" href="#" onclick="log_out()">Log out</a>

Позже вы сможете перенаправить пользователя следующим образом:

window.location = '?do=logout';
...