2017-09-26 1 views
1

J'ai ce script jQuery qui alerte l'utilisateur lorsqu'il quitte le site Web d'un tiers. Fonctionne très bien lorsque vous cliquez simplement dessus, mais si l'utilisateur clique sur Ctrl + Clics ou fait un clic droit> ouvrir un nouvel onglet, le message d'avertissement ne s'affiche pas. Comment puis-je modifier ce code pour que la notification apparaisse indépendamment de la manière dont l'utilisateur clique/ouvre le lien?Fin de la notification sur le site Web

// notification when exiting to third party website 
jQuery('a').filter(function() { 
    return this.hostname && this.hostname !== location.hostname; 
}).click(function(e) { 
if(!confirm("You are now leaving....")) 
    { 
     // return back to page on no. 
     e.preventDefault(); 
    }; 
}); 

C'est un règlement Credit Union, donc je ne suis pas un Butthead pour le faire.

+1

C'est une chose assez sucky à faire à vos visiteurs. – ceejayoz

+1

Je fais souvent ctrl + clic pour contourner cet avertissement. Mieux rediriger vers une page commune et rediriger à partir de là (comme Facebook fait) –

+0

Excellente entrée. C'est une exigence réglementaire pour les coopératives de crédit, donc pas mon choix. – xxdash

Répondre

1

Le clic droit qui est le menu contextuel est une fonctionnalité du navigateur. Vous devez le désactiver complètement ou créer votre propre menu contextuel en utilisant HTML.

Voici une réponse pour résoudre le problème de ctrl + cliquez.

Si la touche est pressée et si elle est la clé ctrl, ajoutez e.preventDefault()

$(document).keydown(function (e) { 
 
    if(e.which==17) 
 
     e.preventDefault(); 
 
}); 
 

 

 
jQuery('a').filter(function() { 
 
    return this.hostname && this.hostname !== location.hostname; 
 
}).click(function(e) { 
 
if(!confirm("You are now leaving....")) 
 
    { 
 
     e.preventDefault(); 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="https://www.google.com">G</a>

+0

Merci! Fonctionne comme un charme. – xxdash