<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.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 21 sept. 2007 à 05:52
é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.
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 19 sept. 2007 à 18:08
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.
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.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 20 sept. 2007 à 08:55
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 />
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 20 sept. 2007 à 10:00
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?