Xml dans un pop-up [Résolu]

Signaler
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
bonjour à toutes et à tous,

                je ne parviens pas à résoudre :


<hr size= "2" width="100%" />





un fichier xml :







<?xml version="1.0" encoding="ISO-8859-1"?>
<rep>
    <qui>
        gérard

        <nom>Menvussa</nom>
        <tel>0123456789</tel>
    </qui>
    <qui>
        gédéon

        <nom>Teuzeumani</nom>
        <tel>1234567890</tel>
    </qui>
</rep>


<hr size="2" width="100%" />







une page html :







<html>

<script type="text/javascript">
    var xml;
    if ( document.implementation.createDocument )
            xml=document.implementation.createDocument("", "", null);
    else    xml=new ActiveXObject("Microsoft.XMLDOM");
    xml.async=false;
    xml.load("test.xml");
    var r=xml.getElementsByTagName("rep")[0];
    for ( var q=0;q<r.getElementsByTagName("qui").length;q++ )
    {     var n=r.getElementsByTagName("qui")[q];
      alert(n.getElementsByTagName("nom")[0].firstChild.data);
    }
</script>

</html>




et tout baigne.


<hr size="2" width="100%" />




Mais si je fais, une page htm qui va créer un pop-up :







<html>

<textarea id ="txt"
          name="txt">
<html>

<script type="text/javascript">
    var xml;
    if ( document.implementation.createDocument )
            xml=document.implementation.createDocument("", "", null);
    else    xml=new ActiveXObject("Microsoft.XMLDOM");
    xml.async=false;
    xml.load("test.xml");
    var r=xml.getElementsByTagName("rep")[0];
    for ( var q=0;q<r.getElementsByTagName("qui").length;q++ )
    {     var n=r.getElementsByTagName("qui")[q];
      alert(n.getElementsByTagName("nom")[0].firstChild.data);
    }
</script>

</html>
</textarea>
<script type="text/javascript">
    var doc=window.open("","test");
    doc.document.open();
    doc.document.writeln(document.getElementById("txt").value);
</script>

</html>



avec FF, dans le pop-up, il ne touve pas test.xml ( avec IE, c'est ok )
il faudrait mettre le nom du fichier en absolu,
    ce qui n'est bien sûr pas possible.

un window.open d'une page html qui contiendrait
    la séquence contenu dans le textarea : ça baigne.

ça semble bien donc être uniquement (?) quand
    le pop-up est créé de toutes pièces.

je fais quoi comme bétise ?





merci d'avance.




<hr />




Cordialement                Bul         [mon Site]     [M'écrire]
<hr />


En général, c'est absurde de généraliser.

5 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
était-ce une question stupide ?
quand on crée une pop-up comme ici,
    IE considère qu'on est dans le même répertoire,
    FF qu'on est "nulle part".
il suffit de le savoir  pour agir en conséquence.

merci à tous moins un.

<hr />



Cordialement Bul [mon Site] [M'écrire]
<hr />


En général, c'est absurde de généraliser.




Si une question n'est jamais stupide, certaines réponses laissent parfois réveur...
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
14
Salut bultez,

quelques arguments en défaveur d'ie :

- il est le navigateur le moins compatible avec les standards web (HTML, DOM, javascript, css)
- le seul moyen de trouver une erreur c'est d'utiliser le debugger microsoft que tu cites souvent dans tes réponses. Mais les messages du genre "vous avez une erreur ligne 5" ou "cet objet ne supporte pas cette propriété" sont plutôt obscurs. L'environnement de développement et surtout de mise au point est très pauvre. Voire inexistant. (Firebug dispose d'une console où afficher des informations en cours d'execution, le moyen equivalent dans ie c'est de créer un textarea, porte nawak quoi...)
- javascript 1.6 est supporté par FF depuis la version 1.5, ie7 ne le supporte toujours pas.

Personnellement, je commence toujours par vérifier mes programmes dans FF pour essayer d'avoir une approche compatible avec les standards, puis très souvent lorsque je vérifie dans ie je tombe sur des erreurs d'outre espace. C'est particulièrement pénible. Malheureusement je suis bien obligé de faire le necessaire puisque pratiquement 70% des internautes utilisent cet outil.

- quelques chiffres : http://www.webdevout.net/browser-support-summary

CSS 2.1 standard support:

IE 6: 52%

IE 7: 54%

Firefox 1.5: 93%

Opera 8.5: 93%

Opera 9: 96%

La politique de microsoft, ce n'est pas de coller à de quelconque standards mais de créer un système propriétaire et clos. Si pour toi, utiliser des hacks pour rendre ie compatible c'est un plaisir, pour moi c'est une plaie et une perte de temps. Je travaille dans le developpement web. Mais on ne doit pas faire le même métier...
Enfin si tu as des arguments en sa faveur je reste à l'ecoute.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
je te remercie grandement pour tes explications.
ça m'aide particulièrement pour résoudre le problème exposé
(
avec FF, mais
qui m'est probablement imputable).
<hr />



Cordialement                Bul         [mon Site]     [M'écrire]
<hr />


En général, c'est absurde de généraliser.
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
14
Première remarque : ferme ton flux. Comme la porte quand tu quittes une pièce
doc.document.close();
Sinon le navigateur tourne en rond, attendant justement la commande de fermeture.
Deuxième remarque :
Tu crées un document dans un textarea puis tu l'envoies dans un autre document (ton popup) c'est particulièrement tordu. Tu pourrais tout simplement créer un document réel (un fichier popup.html) avec tout ce que tu as mis en bleu et faire une ouverture de ce document par window.open('popup.html'...)
Trois : un copier coller de ton truc et ca marche. Je ne vois pas où est le problème.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
une nouvelle fois : merci. t'es trop fort.
    avec tes nouvelles explications, ça devrait fonctionner maintenant. 







pour les autres intervenants, j'aurais probablement du simplifier ma question :

<html>

<textarea id="txt"
          name="txt">
<html>

<script type="text/javascript">
    alert(window.location.href);
</script>

</html>
</textarea>
<script type="text/javascript">
    var doc=window.open("","test");
    doc.document.open();
    doc.document.writeln(document.getElementById("txt").value);
    doc.close();
</script>

</html>


avec FF, on affiche "file://" ( au lieu du chemin+nom de la page html )

en attendant, je détourné le problème en reconstruisant
    le chemin absolu avec le location.href de la page mère.




<hr />




Cordialement                Bul         [mon Site]     [M'écrire]<hr />En général, c'est absurde de généraliser.