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 :

JavaScript XML Chrome et Safari vs Mozilla, IE, Opera


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Points : 42
    Points
    42
    Par défaut JavaScript XML Chrome et Safari vs Mozilla, IE, Opera
    Bonjour,

    J'ai crée un site pour un ami qui travaille comme agent immobilier. Son site contient une série de propositions de ventes immobilières mais pas une grande quantité et la masse des propositions ne risque pas d'augmenter.
    Donc au lieu de créer une base de données (genre My SQL) j'ai utilisé des fichiers XML dont le contenu est chargé par un script JS dans les différents élements affichés par le HTML (exemple : document.getElementById("ref100").innerHTML=xmlVaudBI.getElementsByTagName("ref100")[0].childNodes[0].nodeValue
    A l'affichage les "div" HTML sont remplies par IE,Firefox et Opera, mais Safari et Chrome laissent les "div" vides.

    Avez-vous une réponse? Pourtant j'ai autorisé JavaScript dans Chrome et Safari

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    avec si peu d'infos...


    fait un clic droit sur ta page dans WebKit (chrome ou safari) choisis "inspaecter l'élément" et clique sur le buton "console" le plus à droite en haut

    recharge ta page et tu vera les erreurs

    dans l'onglet javascript tu peux sélectionner ton js et mettre un point d'arrêt pour voir ce qu'il se passe

    A+JYT

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Points : 42
    Points
    42
    Par défaut En effet il y a une erreur
    Citation Envoyé par sekaijin Voir le message
    avec si peu d'infos...


    fait un clic droit sur ta page dans WebKit (chrome ou safari) choisis "inspaecter l'élément" et clique sur le buton "console" le plus à droite en haut

    recharge ta page et tu vera les erreurs

    dans l'onglet javascript tu peux sélectionner ton js et mettre un point d'arrêt pour voir ce qu'il se passe

    A+JYT
    Merci pour votre réponse,

    En effet suite à vos instructions j'ai trouvé l’élément en erreur, mais malgré ça je ne comprends pas:.

    La console de Chrome donne : Uncaught TypeError: Object #<Document> has no method 'load'

    L'erreur se trouve à la ligne 17 dans le code javaScript suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    var xmlGeneveCRB;
    function loadXMLGeneveCRB()
    {
    //load xml file
    // code for IE
    if (window.ActiveXObject)
    {
    	xmlGeneveCRB=new ActiveXObject("Microsoft.XMLDOM");
    	xmlGeneveCRB.async=false;
    	xmlGeneveCRB.load("xml/genevecrb.xml");
    	getoffregenevecrb();
    }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument)
    {
    	xmlGeneveCRB=document.implementation.createDocument("","",null);
    	xmlGeneveCRB.load("xml/genevecrb.xml");
    	xmlGeneveCRB.onload=getoffregenevecrb;
    }
    else
    {
    	alert('Votre navigateur ne peut pas afficher ce script!');
    }
    }
    
    function getoffregenevecrb()
    {
    document.getElementById("ref100").innerHTML=xmlGeneveCRB.getElementsByTagName("ref100")[0].childNodes[0].nodeValue;
    document.getElementById("ref101").innerHTML=xmlGeneveCRB.getElementsByTagName("ref101")[0].childNodes[0].nodeValue;
    document.getElementById("ref102").innerHTML=xmlGeneveCRB.getElementsByTagName("ref102")[0].childNodes[0].nodeValue;
    document.getElementById("ref103").innerHTML=xmlGeneveCRB.getElementsByTagName("ref103")[0].childNodes[0].nodeValue;
    document.getElementById("ref104").innerHTML=xmlGeneveCRB.getElementsByTagName("ref104")[0].childNodes[0].nodeValue;
    document.getElementById("ref105").innerHTML=xmlGeneveCRB.getElementsByTagName("ref105")[0].childNodes[0].nodeValue;
    document.getElementById("ref106").innerHTML=xmlGeneveCRB.getElementsByTagName("ref106")[0].childNodes[0].nodeValue;
    document.getElementById("ref107").innerHTML=xmlGeneveCRB.getElementsByTagName("ref107")[0].childNodes[0].nodeValue;
    document.getElementById("ref108").innerHTML=xmlGeneveCRB.getElementsByTagName("ref108")[0].childNodes[0].nodeValue;
    document.getElementById("ref109").innerHTML=xmlGeneveCRB.getElementsByTagName("ref109")[0].childNodes[0].nodeValue;
    document.getElementById("ref110").innerHTML=xmlGeneveCRB.getElementsByTagName("ref110")[0].childNodes[0].nodeValue;
    document.getElementById("ref111").innerHTML=xmlGeneveCRB.getElementsByTagName("ref111")[0].childNodes[0].nodeValue;
    document.getElementById("ref112").innerHTML=xmlGeneveCRB.getElementsByTagName("ref112")[0].childNodes[0].nodeValue;
    document.getElementById("ref113").innerHTML=xmlGeneveCRB.getElementsByTagName("ref113")[0].childNodes[0].nodeValue;
    document.getElementById("ref114").innerHTML=xmlGeneveCRB.getElementsByTagName("ref114")[0].childNodes[0].nodeValue;
    }
    Dans le HTML cette fonction JS est declarée dans body :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="loadXMLGeneveCRB();">
    Donc je ne vois pas le problème.
    Auriez-vous une suggestion?
    Merci d'avance,
    Mihai

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    réponse du W3C

    The load method is not part of any W3C standard, it looks like Safari
    does not implement it. You might want to use XMLHttpRequest instead to
    load the XML document, then access the responseXML property to have an
    XML DOM document.

    en clair


    La méthode load ne ​​fait pas partie de toute norme du W3C, il semble que Safari (j'ajoute tous les navigateur Webkit) ne soit pas en mesure de la mettre en œuvre. Vous pouvez utiliser XMLHttpRequest au lieu de charger le document XML, puis accéder à la propriété responseXML afin d'obtenir d'avoir un DOM XML document.

    j'ajoute que load est synchrone donc si tu veux tu peut te faire une fonction load pour webkit qui fait un XMLHttpReques synchrone.

    mais en restant pur w3c c'est à dire toujours utilise XHR te garanti un code portable. c'est à mon humble avis la meilleure solution.

    A+JYT

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Points : 42
    Points
    42
    Par défaut JavaScript XML Chrome et Safari vs Mozilla, IE, Opera
    Merci beaucoup,
    Mihai

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/01/2011, 15h14
  2. Erreur JavaScript sous Chrome, Safari et IE8
    Par hsii04 dans le forum IGN API Géoportail
    Réponses: 16
    Dernier message: 04/07/2010, 12h26
  3. [Javascript][XML]
    Par kirk80 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/07/2009, 12h08
  4. Les sessions en javascript; XML sous FF; Aide pour un projet
    Par FremyCompany dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/05/2006, 17h59
  5. application web local, html, javascript, xml tourant sur PDA
    Par goupilou dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 06/03/2006, 22h40

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