Перейти к URL после кнопки ОК, если нажата кнопка оповещения - PullRequest
42 голосов
/ 22 февраля 2012

Мне нужно убедиться, что когда пользователь нажимает OK в окне предупреждений JavaScript, браузер переходит на другой URL. Это возможно?

Ответы [ 6 ]

55 голосов
/ 22 февраля 2012

Что вы подразумеваете под " убедитесь, что "?

alert('message');
window.location = '/some/url';

перенаправляет пользователя после нажатия кнопки ОК в окне предупреждения.

33 голосов
/ 22 февраля 2012

Я подозреваю, что вы имеете в виду в окне confirm (т. Е. Варианты Да / Нет).

if (window.confirm('Really go to another page?'))
{
    // They clicked Yes
}
else
{
    // They clicked no
}
14 голосов
/ 22 февраля 2012

Предупреждение не возвращает значение, фактически возвращает undefined, так что самый простой способ, который я сейчас нахожу, это создание условия для предупреждения, подобного этому

if(!alert("my text here")) document.location = 'http://stackoverflow.com/';

Лучший способ - использовать функцию JavaScript JavaScript (verify) так:

if(confirm("my text here")) document.location = 'http://stackoverflow.com/';

Другой вариант - сделать собственное предупреждение, конечно

7 голосов
/ 22 февраля 2012

Я думаю, что вам нужно это:

if(confirm("Do u want to continue?")) {
    window.location.href = "/some/url"
}
6 голосов
/ 22 февраля 2012

Да, просто перенаправить сразу после alert() вызова:

alert('blah blah');
location.href = '....';
0 голосов
/ 21 октября 2015

Если это для доступности, и вы хотите прослушать каждую ссылку на странице, а затем проверить, не покидаете ли вы текущий сайт другим доменом, ознакомьтесь с тем, что я написал, расширив ответ Джо

        $('a').on('click', function() {

            if ( this.host !== window.location.host ) {
                if ( window.confirm('Really go to another page?') ) {
                    // They clicked Yes
                    console.log('you chose to leave. bye.');
                }
                else {
                    // They clicked no
                    console.log('you chose to stay here.');
                    return false
                }
            }
        }); 
...