Pourrais-tu développer s'il te plait ? Il y avait en début de topic un code qui ne pouvait pas fonctionner correctement. Les gens (dont moi) sont même allés plus loin, car au lieu de proposer une rustine, ils ont proposé une nouvelle manière d'aborder le problème en utilisant correctement le DOM. Ou alors tu n'as rien compris à la réponse :/
Tu n’as compris ni mon problème, ni sa résolution ! Relis bien le thread depuis le début.
Bonjour, je viens de mettre à jour ce qui pour moi est un bug, mais qui a peut-être une explication. Voici mon code:
Code : Tout sélectionner
<body>
<script language="JavaScript">
document.write('<div id="id_js">id javascript</div>');
document.getElementById("id_js").innerHTML = "Javascript div modified";
document.getElementById("id_html").innerHTML = "HTML div modified";
</script>
<div id="id_html">id html</div>
</body>
Dans ce code, la balise DIV créée par le script (id_js) voit son contenu changer, mais rien ne se passe pour le contenu de la balise DIV codée en HTML
Et la solution de Bobo, répondant à mon problème :
La raison est simple, au moment de l'exécution du script, ta div "id_html" n'existe pas encore.
Si tu la places avant l'élément <script>, tu constateras que le script fonctionne.
Sinon, il faut placer ton code dans une fonction appelée par l'événement onload.
En résumé, pour que mon code fonctionne, il faut que mon script soit inséré à la fin de la page ou lancée par l’évènement onload, ce qui n’a rien à voir avec la compatibilité avec DOM.
Ton code était intéressant, mais hors sujet, puisque le problème se posait sur la
modification du contenu d’une balise existante, et non sur la création d’une nouvelle balise, qui fonctionnait correctement malgré le fait qu’elle ne soit pas 100% standard.
Pour ta seconde réaction, PsyDk, voici la relation entre les deux : un code développé il y a dix ans est potentiellement « éternel », mis à part quand la réalité fait que tu es obligé de le modifier quand il s’avère qu’il possède une faille de sécurité. L’injection HTML utilise du code JavaScript pour envoyer (entre autres) les cookies propres à un site sur un autre serveur. L’une des solutions consiste à interdire au navigateur l’utilisation des cookies en JavaScript (cf
http://www.westpoint.ltd.uk/advisories/wp-04-0001.txt) Dans ces conditions, ton code d’il y a dix ans peut ne plus fonctionner, même s’il respecte les standards définis il y a dix ans, même s’il est bien formé.
Mais demande au patron s'il vois d'un bonne oeuil la perte potenciel de 10% de son ca...
Nous n’en sommes pas là. Nos applications web font du suivi de commande auprès de nos importateurs, pas du e-business ni du B to B.
Réhutiliser du javascript sans savoir d'ou ce dernier provien et tres dangeureux, car il n'est pas forcement compatible, pas forcement bien écrit.
Celui-ci est plutôt bien écrit, mais trouver le petit grain de sable qui coince le rouage n’est pas forcément chose aisée, et prend du temps, que ce soit du code écrit par nos soins ou du code provenant de l’extérieur. Vas expliquer à ton boss que tu passes dix homme-jours à rendre tes applications compatibles avec le dernier navigateur à la mode, et tu verras sa réaction. S'il est pragmatique (ce qui est le cas pour moi), il va te demander si c'est bien utile de prendre autant de retard sur les projets en cours pour un navigateur dont on ne sait pas s'il sera utilisé dans les mois (années) à venir.
Je rappelle qu'en informatique ce n'est pas forcément le meilleur logiciel qui est utilisé, mais celui qui sera le plus populaire, donc celui qui aura fait le plus de bruit, celui qui aura eu la politique commerciale la plus percutante, la plus agressive (vois comment Microsoft s'est payé la part du lion). Dans le monde du travail, ce n'est pas la personne la plus apte à répondre au poste demandé qui sera embauchée, mais la personne qui se sera le mieux vendu.
Mais je m'égare. J'avais prévenu dans mon thread précédent que ce thread serait un troll. C'est en train de le devenir, et çà n'a que très peu d'intérêt... Je pense qu'il faut recentrer le débat.
Donnez-moi plutôt votre retour d'expérience sur les choses que vous avez dû faire pour rendre votre code compatible avec FireFox. Merci d'avance.