web-dev-qa-db-fra.com

Aller à l'URL après le bouton OK si une alerte est activée

Je dois m'assurer que lorsque l'utilisateur clique sur OK dans une fenêtre d'alerte JavaScript, le navigateur passe à une autre URL. Est-ce possible?

43
Ondrej

Je suppose que vous voulez dire dans une fenêtre confirm (c'est-à-dire des options Oui/Non).

if (window.confirm('Really go to another page?'))
{
    // They clicked Yes
}
else
{
    // They clicked no
}
35
Joe

Qu'entendez-vous par "assurez-vous"?

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

redirige l'utilisateur après avoir cliqué sur OK dans la fenêtre d'alerte.

56
penartur

Une alerte ne retourne pas de valeur, mais bien undefined, donc le moyen le plus simple que je trouve maintenant est de la conditionner comme ceci

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

Une meilleure façon est d'utiliser la fonction javascript confirm () comme ceci

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

Une autre option est de faire votre propre alerte bien sûr

14
David Diez

Je pense que ce dont vous avez besoin est ceci:

if(confirm("Do u want to continue?")) {
    window.location.href = "/some/url"
}
8
Subodh

Oui, il suffit de rediriger immédiatement après l'appel alert():

alert('blah blah');
location.href = '....';
6
ThiefMaster

Si c'est pour l'accessibilité et que vous voulez écouter chaque lien sur la page et que vérifier si vous quittez le site actuel vers un autre domaine, consultez ce que j'ai écrit, développant la réponse de Joe

        $('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
                }
            }
        }); 
0
shmotam