J'ai une fonction JavaScript avec le code suivant.
function NodeClickActions(sender, eventArgs) { event.preventDefault(); //Get whether user clicked CTRL key or not var bCtrlPressed = eventArgs.get_browserEvent().ctrlKey; //URL of the actions page var URL = "../Actions.aspx"; //If CTRL key was pressed if (bCtrlPressed) { parent.MainPage.location.href = URL + "?PackageId=00000000-0000-0000-0000-000000000000&All=" + bCtrlPressed; } else { parent.MainPage.location.href = URL; } }
3 Réponses :
Détecter la clé de Ctrl Appuyez sur ou non. Utilisez JQuery pour la manipulation des événements manipulant facilement
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <a href="this?one">one</a>
Je m'étais testé son travail. Si vous ne travaillez toujours pas, essayez avec `renvoyer false` à la place e.preventDefault code>
Je suppose une bonne foi complète de votre part @prasanth, mais je suis tellement désolé, cela ne fait aucune différence. Une dernière chose, je ne peux pas utiliser de retour faux car j'ai un autre chemin à gérer. Merci n'importe quelle façon mate. Acclamations.
@Posper Vérifiez la dernière réponse ci-dessous.
Voici le moyen le plus simple pour cela, empêchant que l'URL soit beaucoup plus intelligente puis empêchant la pression des touches CTRL / CMD car la fonctionnalité comme CTRL / cmd + clic est la fonctionnalité du navigateur et ne peut pas être écrasée (ou au moins je n'ai pas avoir du succès avec elle) ... dépend de la case où vous utiliserez que vous devez appliquer quelque chose de similaire pour la soumission de formulaire ... car cela est également affecté par cette fonctionnalité de navigateur P > IMPORTANT: STRAND> OS X Utilisateurs à l'aide de la commande + clic, n'oubliez jamais que P> $("a").contextmenu(function(e){
e.preventDefault();
});
Vous devez ajouter auditeur directement sur une balise d'ancrage au lieu d'utiliser la délégation d'événement et l'ajout sur l'élément parent. Exemple de travail ici .
HTML P>
$(document).ready(function () { $("a").on('click',function(event) {debugger; event = event || window.event; event.preventDefault(); event.stopPropagation(); return false; }); });
De cette façon, vous supprimez complètement les fonctionnalités de clic ... Le lien doit toujours être fonctionnel juste sans possibilité d'être ouvert dans un autre onglet à l'aide du bouton Ctrl ...
Dupliqué possible de Stackoverflow.com/Questtions/31472065/...
@Sunil Cette solution ne fonctionnera pas ici, j'ai peur.
Si vous pensez que vous devez dicter ce qui se passe dans mon navigateur à cet égard, alors vous faites probablement quelque chose de mal à commencer.