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

jQuery Discussion :

[safari-JQuery] affichage étonnant de javascript


Sujet :

jQuery

  1. #1
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut [safari-JQuery] affichage étonnant de javascript
    Bonjour,

    J'ai développé un site qui utilise le couple PHP/MySQL et le framework JQuery pour la partie javascript/ajax.
    Sur l'une de mes pages, dans safari (uniquement dans safari) j'ai un affichage intempestif autant qu'étrange. ci-joint la cpature d'écran...

    Peut-on éclairer ma lanterne sur ce qui se passe ???
    Merci
    "n'imprimez ces messages que si nécessaire... Préservez notre planète"

  2. #2
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut j'ai trouvé le responsable mais ça dépasse mes compétences
    Re !

    Voilà il s'agit bien d'un souci avec Jquery, l'une de ses fonctions de conversion des balises html pose problème. (ligne 775 environ)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Convert html string into DOM nodes
                if ( typeof arg == "string" ) {
                    // Fix "XHTML"-style tags in all browsers
                    arg = arg.replace(/(<(\w+)[^>]*?)\/>/g, function(m, all, tag){
                        return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area)$/i)? m : all+"></"+tag+">";
                    });
    HELP !
    "n'imprimez ces messages que si nécessaire... Préservez notre planète"

  3. #3
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut DTD en XHTML...
    Re,

    Je continue mon monologue, mais ça pourra peut-être intéressé des petits malins qui rencontreraient le même souci...
    Donc l'explication (pas la solution) est que la fonction de jquery, transforme un certain nombre de balise html au format xhtml pour les rendre conforme sur tous les navigateurs.
    Si ces balises (img et br notamment) sont déjà formatées xhtml à savoir ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <br /> et <img src=... ... />
    avec leur barre de fermeture, jquery et safari ne s'en sortent pas et affichent n'importe quoi (la fonction en l'occurence)
    Si dans le code php on prévoit le coup tout rentre dans l'ordre, sauf en ce qui concerne les textarea qui formatent eux mêmes les sauts de lignes... et là je sèche.
    il faudrait arriver à créer une structure de contrôle de ces balises, si elles sont bien formatées ne pas tenir compte de la fonction sinon agir...

    à suivre...
    "n'imprimez ces messages que si nécessaire... Préservez notre planète"

  4. #4
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut et donc la solution (à vérifier sur la durée)
    Voici donc la solution. Elle nécessitera d'être vigilent sur la durée pour vérifier qu'elle ne perturbe pas outre mesure le fonctionnement de jquery...
    A l'endroit du code précédement joint, dans la bibliothèque jquery (ligne 775) englobez dans une structure de contrôle qui exclu safari :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ( !jQuery.browser.safari ){
                        // Fix "XHTML"-style tags in all browsers
                        arg = arg.replace(/(<(\w+)[^>]*?)\/>/g, function(m, all, tag){
                            return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area)$/i)? m : all+"></"+tag+">";
                        });
                    }
    Après tests sur les navigateurs, IE6, IE7 et Firefox tout semble correct et safari arrète de panouiller...
    à la prochaine.
    "n'imprimez ces messages que si nécessaire... Préservez notre planète"

  5. #5
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Salut,

    As-tu contacté l'équipe de jQuery, leur as-tu rapporté le bug?
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  6. #6
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut contact pris
    hello !

    oui, j'ai fait passer l'info et un lien vers la discussion.
    Je pense qu'il y a mieux à faire que ma solution d'exclusion, mais bon ça me suffit pour le moment.

    Cordialement,
    "n'imprimez ces messages que si nécessaire... Préservez notre planète"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. div id et affichage de tableau javascript + Struts
    Par littlebear dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 29/01/2009, 11h17
  2. Affichage xml,php, javascript..
    Par magicpapillon77 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 04/08/2008, 13h56
  3. ordre d'affichage / masquage fonctions Javascript
    Par figatelliSTI dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/03/2008, 15h44
  4. problème d'affichage des scripts "javascript" dans ma jsp
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 07/10/2007, 15h14
  5. Pb d'affichage avec un javascript et une liste déroulante
    Par marti dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/08/2006, 10h54

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