IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

IE7 et Vista ne gère plus le onclick="todo(); return false" sur les liens


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut IE7 et Vista ne gère plus le onclick="todo(); return false" sur les liens
    Bonjour à vous amis développeurs !

    Je viens de me rendre compte qu'avec le coupe IE7/Vista, il était impossible d'utiliser la technique du return false sur un lien pour le désactiver, aprés avoir généralement lancé une fonction javascript.

    Je m'explique : j'avais pour habitude dans mes applications ajax de fournir un accés interractif en appelant une fonction javascript, et si le jvs n'était pas activé ça ouvrait une page html équivalente pour ne pas empécher l'accés aux personnes sans jvs ( et surtout aux spiders ^^ ).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Petit exemple : 
    <a href="forum_1115.htm" onclick="afficher_forum('1115'); return false">Test</a>
    Lorsque le jvs est activé, ça lance la fonction et le lien href est désactivé.
    Dans le cas contraire, le onclick n'est pas évalué donc on part direct sur la page html.

    Le problème que je viens de découvrir c'est que sous IE7/Vista, le 'return false;' ne bloque plus le lien : la fonction est exécutée et de suite aprés on change de page .... trés embettant.....

    Voilà je voudrais donc savoir si vous avez le même problème que moi, et si c'est le cas si vous avez des solutions pour le résoudre.
    ( Je pense que la solution de 'binder' les actions sur des id fonctionnerait mais je n'apprécie pas trop cette méthode )

    A vos claviers.

  2. #2
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Par défaut
    Citation Envoyé par yotsumi Voir le message
    [....] ( Je pense que la solution de 'binder' les actions sur des id fonctionnerait mais je n'apprécie pas trop cette méthode )

    A vos claviers.
    Pourquoi tu n'aime pas ? .... tu sais, tu as la réponse, tu la connais.... alors si tu dis que tu ne veux pas l'appliquer parce que tu ne l'aime pas.... il y a problème

    D'autant que c'est trés conseillé d'associer les méthodes à des ID plutôt que dans le code HTML (même si parfois on est bien obligé). Tu découvrira vite que c'est plus facile à gérer, surtout sur les page contenant beaucoup d'élément de commande.

    Au passage, merci pour l'info au sujet d'IE7 et Vista (mais c'est quand-même étonnant ça)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Pour dire vrai, je n'aime pas cette méthode car j'ai toujours utilisé le onclick="xxx; return false" sur la totalité de mes sites ( tous portés ajax et cie ), donc il va me falloir un nombre d'heure considérable pour tout rendre compatible ....

    Déjà que programmer ( et debugger ) sous IE est un vrai calvaire, microsoft en rajoute une couche, sont super simpa !

    Peut-être ( avec bcp de chance ) que quelqu'un connait une solution alternative au return false qui pourrait fonctionner.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Petit reply pour ceux qui auraient le même problème et qui ne voudraient pas reprendre tous leurs précédents sites.

    J'ai essayer de trouver un hack simpa pour corriger ce problème, et je suis finalement arrivé à en trouver un pas trop 'laid' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $(document).ready(function(){ 
    	$("a[@onclick~='return false']").click( function() { return false; } );
    });
    Là j'utilise la librairie Jquery, mais sa doit être possible d'en faire un équivalent plus général.


    Bon sinon je vous jure, pour mes prochains sites je ferais tout bien avec des binds ^^

Discussions similaires

  1. Appcrach avec IE7 et vista
    Par jiojioforever dans le forum Windows Vista
    Réponses: 3
    Dernier message: 13/06/2007, 01h19
  2. IE7 sous vista
    Par pierrot10 dans le forum Installation
    Réponses: 2
    Dernier message: 22/05/2007, 14h54
  3. [AJAX] IE7 : mon script ne fonctionne plus
    Par Oluha dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/01/2007, 15h48
  4. Return false inopérent sur un "onclick"
    Par El Riiico dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/01/2006, 11h47
  5. Windows ne gère plus les accents
    Par Tofalu dans le forum Windows XP
    Réponses: 9
    Dernier message: 30/03/2005, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo