Lien hypertexte sans mouvement de page

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Lien hypertexte sans mouvement de page

Re: Lien hypertexte sans mouvement de page

par jojolapine » 05 août 2009, 16:57

Je suis tout à fait d'accord avec toi victor, mais si on pousse aussi loins, autant utiliser des librairies javascript (jquery ...) c'est moins lourd à coder...
(X)html:

Code : Tout sélectionner

<a href="lien.php" id="lienJS">...</a>
Js:

Code : Tout sélectionner

$(document).load(){function(){ $('#lienJS').click(function(){ //code js return false; }); });
Après c'est les gouts et les couleurs, mais au moins, on ne s'occupe plus ou presque de la compatibilité... ;)

Re: Lien hypertexte sans mouvement de page

par Victor BRITO » 05 août 2009, 16:47

Très simple quand on connait l'stuce ;)
il suffit d'avoir un return false dans ton javascript, soit:

Code : Tout sélectionner

<a href="oerhfgoih" onclick="blablajs();return false">ohreoih</a> //ou encore <a href="oerhfgoih" onclick="return blablajs();">ohreoih</a> // avec la fonction qui va avec: function blablajs(){ if(codejs ok){ return false; } return true; }
Comme ça si ta fonction n'as pas marchée, tu peux toujours mettre un href qui va bien dans ton lien pour que la tache soit éxécutée malgrès tout de façon plus traditionnelle ;)
On peut même améliorer le code de cette gestion d'événement :
(X)HTML

Code : Tout sélectionner

<a href="oerhfgoih" id="blablajs">ohreoih</a>
JavaScript

Code : Tout sélectionner

function fnSansMouvement () { if (!document.getElementById) return; var oBlablajs = document.getElementById ('blablajs'); if (oBlablajs.addEventListener) oBlablajs.addEventListener ('click', fnBlablajs, false); else if (oBlablajs.attachEvent) oBlablajs.attachEvent ('onclick', fnBlablajs); // Pour IE } function fnBlablajs (event) { // Diverses instructions // Un return false conforme au DOM actuel if (event.preventDefault) event.preventDefault (); else event.returnValue = false; // Pour IE } // Chargement du script au chargement de la page if (window.addEventListener) window.addEventListener ('load', fnSansMouvement, false); else if (window.attachEvent) window.attachEvent ('onload', fnSansMouvement); // Pour IE
Autrement, cette amélioration de code permet de faire du JavaScript non intrusif, qui facilite la maintenance du code (X)HTML (d'autant plus qu'il n'y a pas un seul attribut on+événement d'ajouté). ;)

Re: Lien hypertexte sans mouvement de page

par jojolapine » 05 août 2009, 15:39

Derien ;)

Re: Lien hypertexte sans mouvement de page

par narcisse » 05 août 2009, 15:36

Merci, c'était ça.

Re: Lien hypertexte sans mouvement de page

par jojolapine » 05 août 2009, 15:29

Très simple quand on connait l'stuce ;)
il suffit d'avoir un return false dans ton javascript, soit:

Code : Tout sélectionner

<a href="oerhfgoih" onclick="blablajs();return false">ohreoih</a> //ou encore <a href="oerhfgoih" onclick="return blablajs();">ohreoih</a> // avec la fonction qui va avec: function blablajs(){ if(codejs ok){ return false; } return true; }
Comme ça si ta fonction n'as pas marchée, tu peux toujours mettre un href qui va bien dans ton lien pour que la tache soit éxécutée malgrès tout de façon plus traditionnelle ;)

Lien hypertexte sans mouvement de page

par narcisse » 05 août 2009, 15:05

Bonjour,

j'ai une question terriblement bête, je sais que j'ai déjà fait ça par le passé, mais je souhaite créer un hyperlien pour lequel je n'aurai pas de mouvement de page quand je cliquerai dessus.

Exemple : le # me ramène en haut de document.

Je veux être n'importe ou dans la page, cliquer sur le lien, et rester au même endroit.

Petite précision, j'exécute un js en parallèle.

Merci de votre aide.