xml+xslt+javascript = erreur d'affichage
xml+xslt+javascript = erreur d'affichage
Bonjour à tous,
Je pioche sur un problème récurrent d'affichage : il s'agit de faire afficher la date de mise à jour d'un fichier (une page web http://www.bibliotheques.uqam.ca/recher ... nables.xml listant les bases de données incontournables en sociologie) dans le bas de la page web à droite. Je fais faire des transformations XSLT sur des fichiers XML côté client : j'ai mis le javascript (qui génère la date de mise à jour) dans la feuille XSLT. Dans IE ça fonctionne, la date s'affiche. Dans FX la date ne s'affiche pas.
J'ai essayé de mettre le javascript dans un fichier à part : ça ne fonctionne toujours pas. J'ai aussi essayé de mettre le code dans des sections CDATA, fonctionne toujours pas. Enfin j'ai pris le HTML généré par la feuille XSLT, j'ai un crée un fichier HTML et ça fonctionne dans FX...
On dirait que le problème vient de FX : il semble incapable de traiter du javascript intégré dans du XSLT.
Vous pouvez jeter un coup d'oeil sur la feuille XSLT ici. http://www.bibliotheques.uqam.ca/xml/co ... es_xsl.txt
Quelqu'un peu m'aider ?
Merci !
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
Je pioche sur un problème récurrent d'affichage : il s'agit de faire afficher la date de mise à jour d'un fichier (une page web http://www.bibliotheques.uqam.ca/recher ... nables.xml listant les bases de données incontournables en sociologie) dans le bas de la page web à droite. Je fais faire des transformations XSLT sur des fichiers XML côté client : j'ai mis le javascript (qui génère la date de mise à jour) dans la feuille XSLT. Dans IE ça fonctionne, la date s'affiche. Dans FX la date ne s'affiche pas.
J'ai essayé de mettre le javascript dans un fichier à part : ça ne fonctionne toujours pas. J'ai aussi essayé de mettre le code dans des sections CDATA, fonctionne toujours pas. Enfin j'ai pris le HTML généré par la feuille XSLT, j'ai un crée un fichier HTML et ça fonctionne dans FX...
On dirait que le problème vient de FX : il semble incapable de traiter du javascript intégré dans du XSLT.
Vous pouvez jeter un coup d'oeil sur la feuille XSLT ici. http://www.bibliotheques.uqam.ca/xml/co ... es_xsl.txt
Quelqu'un peu m'aider ?
Merci !
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
bonjour,
pas facile, ... pas trouvé en enier, ... vraiment besoin des pros de Geckozone
En résume :
<xsl:comment>
</xsl:comment>
ne permet pas sous Firefox d'interpréter du javascript
Il faut leur préférer :
<![CDATA[
]]>
et remplacer : if (fyear < 2000) par if (fyear < 2000)
de plus, gros problème : Firefox n'interprète pas lors d'une transformation le code JS : document.write
Il faut remplacer cela par un SPAN et innerHTML
Mais où je bloque ce matin (2:55) c'est sur le javascript : document.lastModified
qui fonctionne très bien dans une page normale
mais plus du tout dans la transformation
voilà le code que j'ai trouvé pour le moment :
qui donne sous IE
©2006 Service des bibliothèques
Mise à jour le 8-08-2006
et sous Firefox
©2006 Service des bibliothèques
Mise à jour le 1-01-1970
A+
Christian
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)

pas facile, ... pas trouvé en enier, ... vraiment besoin des pros de Geckozone
En résume :
<xsl:comment>
</xsl:comment>
ne permet pas sous Firefox d'interpréter du javascript
Il faut leur préférer :
<![CDATA[
]]>
et remplacer : if (fyear < 2000) par if (fyear < 2000)
de plus, gros problème : Firefox n'interprète pas lors d'une transformation le code JS : document.write
Il faut remplacer cela par un SPAN et innerHTML
Mais où je bloque ce matin (2:55) c'est sur le javascript : document.lastModified
qui fonctionne très bien dans une page normale
mais plus du tout dans la transformation
voilà le code que j'ai trouvé pour le moment :
Code : Tout sélectionner
<div>
<p >
©2006 Service des bibliothèques<br/>
<span id="dtmodified"> </span>
</p>
</div>
<script language="JavaScript" type="text/javascript">
<![CDATA[
var days = new Array(8);
days[1] = "dimanche";
days[2] = "lundi";
days[3] = "mardi";
days[4] = "mercredi";
days[5] = "jeudi";
days[6] = "vendredi";
days[7] = "samedi";
var months = new Array(13);
months[1] = "01";
months[2] = "02";
months[3] = "03";
months[4] = "04";
months[5] = "05";
months[6] = "06";
months[7] = "07";
months[8] = "08";
months[9] = "09";
months[10] = "10";
months[11] = "11";
months[12] = "12";
var dateObj = new Date(document.lastModified)
var wday = days[dateObj.getDay() + 1]
var lmonth = months[dateObj.getMonth() + 1]
var date1 = dateObj.getDate()
var fyear = dateObj.getYear()
if (fyear < 2000)
fyear = fyear + 1900;
// document.write("Mise à jour " + "le " + date1 + "-" + lmonth + "-" + fyear)
document.getElementById("dtmodified").innerHTML="Mise à jour " + "le " + date1 + "-" + lmonth + "-" + fyear;
]]>
</script>
©2006 Service des bibliothèques
Mise à jour le 8-08-2006
et sous Firefox
©2006 Service des bibliothèques
Mise à jour le 1-01-1970

A+
Christian
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Re: xml+xslt+javascript = erreur d'affichage
Prologue : je n'y connais (presque) rien à JavaScript.le thécaire a écrit : j'ai mis le javascript (qui génère la date de mise à jour) dans la feuille XSLT. Dans IE ça fonctionne, la date s'affiche. Dans FX la date ne s'affiche pas.
Alors j'ai fait un test (avant de me coucher) pour un peu éclaircir le problème. Si par exemple tu testais le JavaScript seul ? Moi je n'ai pas réussi à lui faire afficher quoi que ce soit...
Je pense que Firefox sait très bien (sans doute mieux que IE) se débrouiller avec des transformations XSLT, mais pas très bien avec du JavaScript qu'il ne comprend pas à la base !
« La clarté est la politesse des professeurs. » (E. Gerurez)
... Posons de bonnes questions !
... Posons de bonnes questions !
bonjour,
En modifiant if (fyear < 2000)
Cordialement
Christian
PS. En fait LE SEUL problème restant est :
Comment récupérer en javascript le :
document.lastModified lors d'une transformation XSL DANS Firefox
( c'est sûrement une autre syntaxe mais je ne connais pas bien Firefox )
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)

Si par exemple tu testais le JavaScript seul ?


Cordialement
Christian
PS. En fait LE SEUL problème restant est :

document.lastModified lors d'une transformation XSL DANS Firefox
( c'est sûrement une autre syntaxe mais je ne connais pas bien Firefox )
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
lpgc a écrit : Il faut leur préférer :
<![CDATA[
]]>
et remplacer : if (fyear < 2000) par if (fyear < 2000)
de plus, gros problème : Firefox n'interprète pas lors d'une transformation le code JS : document.write
Il faut remplacer cela par un SPAN et innerHTML

Fantastique, ça fonctionne... Effectivement il affiche la date zéro.lpgc a écrit : Mais où je bloque ce matin (2:55) c'est sur le javascript : document.lastModified
qui fonctionne très bien dans une page normale
mais plus du tout dans la transformation
voilà le code que j'ai trouvé pour le moment :
TK tu en connais certaines particularités... chapeau( c'est sûrement une autre syntaxe mais je ne connais pas bien Firefox )
Merci beaucoup Salamandre. Je vais continuer sur la piste de la propriété lastmodified.
pierre
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
bonjour,
Où on peut trouver cela ? ... A vrai dire partout sur le Net c'est très facile à trouver
voici 2 adresses :
http://www.w3schools.com/xml/xml_cdata.asp
et
http://en.wikipedia.org/wiki/Client-side_JavaScript
chez moi çà fonctionne très bien sous IE et Firefox
http://www.lpgc.be/tutor/xsl/lastmodified.htm
si c'est pour essayer dans une page seule il faut en plus mettre // devant les balises :
//<![CDATA[
//]]>
En fait je pense que sous cette forme c'est valable aussi pour le xslt mais j'ai pas essayé.
Je suis très certainement aussi débutant que vous en programmation Web et sur ce Forum :
Salamandre est un indicateur qui correspond au nombres de messages postés
et lpgc est mon pseudo
Cordialement,
Christian
PS. Par contre si vous trouvez la solution, en plus de l'auteur de cet article, elle m'intéresse également
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)

Où on peut trouver cela ? ... A vrai dire partout sur le Net c'est très facile à trouver

voici 2 adresses :
http://www.w3schools.com/xml/xml_cdata.asp
et
http://en.wikipedia.org/wiki/Client-side_JavaScript
chez moi çà fonctionne très bien sous IE et Firefox
http://www.lpgc.be/tutor/xsl/lastmodified.htm
si c'est pour essayer dans une page seule il faut en plus mettre // devant les balises :
//<![CDATA[
//]]>
En fait je pense que sous cette forme c'est valable aussi pour le xslt mais j'ai pas essayé.

Salamandre est un indicateur qui correspond au nombres de messages postés
et lpgc est mon pseudo

Cordialement,

Christian
PS. Par contre si vous trouvez la solution, en plus de l'auteur de cet article, elle m'intéresse également


Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 6 invités