Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1284 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  Javascript dans un XSL, mozilla ignore <xsl:comment><![CDATA[ ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Javascript dans un XSL, mozilla ignore <xsl:comment><![CDATA[ ?

n°638211
antsite
Je me souviens
Posté le 10-02-2004 à 22:45:54  profilanswer
 

Salut,
Lorsque l'on souhaite mettre un morceau de code javascript dans une feuille xsl, il faut prendre soin de mettre
<script type="text/javascript">
<xsl:comment><![CDATA[
 
/*code*/
 
]]></xsl:comment>
</script>
 
pour pouvoir écrire des < (inférieur).
Seulement sous IE pas de problème, mais mozilla ne semble pas exécuter le code entre <xsl:comment... , pourquoi donc ? COmment y remédier ?
Je ne peux pas mettre tout dans un fichier .js externe car je me sert de xsl dans mon script, au début, pour créer un array. ensuite je veux l'initialiser avec un for et c'est la que j'ai besoin de comment...
merci
   ANT

mood
Publicité
Posté le 10-02-2004 à 22:45:54  profilanswer
 

n°638228
antp
Super Administrateur
Champion des excuses bidons
Posté le 10-02-2004 à 22:50:20  profilanswer
 

heu <xsl:comment> ça veut dire qu'au niveau du XML c'est un commentaire, c'est bizarre, non ? :??:
Y a déjà le CDATA pour éviter les caractères spéciaux et le <script> au niveau HTML...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°638239
antsite
Je me souviens
Posté le 10-02-2004 à 22:55:05  profilanswer
 

oui mais il faut les deux, c'est sur, j'ai lu quelques trucs sur le sujet et puis si tu les mets pas tu as une erreur de parsing (avec ie notamment)

n°638321
gilou
Modérateur
Modzilla
Posté le 11-02-2004 à 00:00:50  profilanswer
 

De toute facon, mozilla n'etant plus dévellopé, passes a firefox.
ton <xsl:comment>...</xsl:comment> c'est dans une feuille de style xslt. faudrait qu'on l'aie sous la main pour voir ce qui va pas. Tu as la feuille de style et un exemple de xml l'utilisant, en ligne qque part??
 
Si ton pb est juste d'ecrire des < et > pour ton script, la solution connue est la suivante:
<script type="text/javascript">  
<xsl:text disable-output-escaping='yes'>
et ici, tu met ton script, avec &lt; pour < et &gt; pour > (et &amp;&amp; pour && )
et en sortie de la transfo xslt, ca sera OK.
</xsl:text></script>
 
Un exemple tout con pour te montrer que ca marche (exemple pas parfait car torché en 5 mn):
test.xml

Code :
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <?xml-stylesheet href="test.xsl" type="text/xsl" ?>
  3. <HTML>
  4. <BODY onLoad="timerONE=window.setTimeout('scroll(100)',500);">
  5. <H1>Test</H1>
  6. </BODY>
  7. </HTML>

(pris un fichier HTML declare comme du xml afin de pouvoir appeller onLoad)
test.xsl

Code :
  1. <?xml version="1.0"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:output method="html"/>
  4. <xsl:template match="node() | @*">
  5. <xsl:copy>
  6. <xsl:apply-templates select="@* | node()"/>
  7. </xsl:copy>
  8. </xsl:template>
  9. <xsl:template match="/HTML">
  10. <HTML>
  11. <HEAD>
  12. <SCRIPT type="text/javascript">
  13. <xsl:text disable-output-escaping='yes'>
  14. function scroll(seed) {
  15.       var msg  = "Look at me go! I'm scrolling!";
  16.       var out   = " "
  17.       var i     = 1
  18.       if (seed &gt; 100) {
  19.            seed--;
  20.            var cmd  = "scroll(" + seed + " )";
  21.            timerTwo = window.setTimeout(cmd,100);
  22.       }
  23.       else if (seed &lt;= 100 &amp;&amp; seed &gt; 0) {
  24.            for (i = 0 ; i &lt; seed ; i++) {
  25.                  out += " ";
  26.            }
  27.            out += msg;
  28.            seed--;
  29.            var cmd = "scroll(" + seed + " )";
  30.            window.status=out;
  31.            timerTwo=window.setTimeout(cmd,100);
  32.       }
  33.       else if (seed &lt;= 0) {
  34.            if (-seed &lt; msg.length) {
  35.                  out += msg.substring(-seed,msg.length);
  36.                  seed--;
  37.                  var cmd="scroll(" + seed + " )";
  38.                  window.status=out;
  39.                  timerTwo=window.setTimeout(cmd,100);
  40.            }
  41.            else {
  42.                  window.status=" ";
  43.                  timerTwo=window.setTimeout("scroll(100)",75);
  44.            }
  45.       }
  46.    }
  47. </xsl:text></SCRIPT>
  48. </HEAD>
  49. <xsl:apply-templates/>
  50. </HTML>
  51. </xsl:template>
  52. </xsl:stylesheet>


Sous IE tu verras le script s'executer.  
Sous Mozilla (j'ai teste avec firefox en fait),ca marche aussi. Tu vois d'ailleurs le script avec le DOM Inspector. A toi donc d'adapter a ton pb.
A+,


Message édité par gilou le 11-02-2004 à 01:00:32

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°638323
antp
Super Administrateur
Champion des excuses bidons
Posté le 11-02-2004 à 00:01:48  profilanswer
 

gilou a écrit :

De toute facon, mozilla n'etant plus dévellopé, passes a firefox.


 
:heink: la 1.6 est sortie récemment et firefox utilise le même moteur (c'est lui qui suit Mozilla et non l'inverse)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°638346
gilou
Modérateur
Modzilla
Posté le 11-02-2004 à 00:12:48  profilanswer
 

Euh oui, scuse! J'ai lu Mozilla, et j'ai pensé Netscape :o
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°638470
antsite
Je me souviens
Posté le 11-02-2004 à 08:52:47  profilanswer
 

Ah très bien merci Gilou !
Oui de toute façon j'ai écrit mozilla mais en fait j'utilise firefox, je voulais généraliser ;-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  Javascript dans un XSL, mozilla ignore <xsl:comment><![CDATA[ ?

 

Sujets relatifs
[PHP_SPIP] et javascript...[javascript] Additionner des minutes ?
Scrollbar en javascriptlien en javascript
[javascript] selectedIndex capricieux.[javascript] connaitre la position d'un element dans la page ?
[XSL] problème de variable dans un pattern de apply-templatesDegradé en fond d'ecran compatible avec Mozilla ???
[w3c] javascript ?[Javascript] disabled/enabled une liste déroulante (balise SELECT)
Plus de sujets relatifs à : Javascript dans un XSL, mozilla ignore <xsl:comment><![CDATA[ ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR