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

  FORUM HardWare.fr
  Programmation
  XML/XSL

  [RESOLU][XSL/JavaScript]problème d'intégration code JS dans le XSL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU][XSL/JavaScript]problème d'intégration code JS dans le XSL

n°1062589
Devil6662
Posté le 27-04-2005 à 12:29:49  profilanswer
 

Bonjour à tous et a tous, voici mon problème, j'aimerai placer mon code JS suivant :

Code :
  1. <script language="JavaScript">
  2. var button_down = null; //pour définir une valeur par défaut de bouton enfoncé
  3. function findCells(table) {  //fct qui recherche les cellules.
  4.                        var tbody = table.firstChild;
  5.                            while (tbody.nodeName != "TBODY" ) tbody = tbody.nextSibling;
  6.                        var tr = tbody.firstChild;
  7.                            while (tr.nodeName != "TR" ) tr = tr.nextSibling;
  8.                        var td_left = tr.firstChild;
  9.                            while (td_left.nodeName != "TD" ) td_left = td_left.nextSibling;
  10.                        var td_center = td_left.nextSibling;
  11.                            while (td_center.nodeName != "TD" ) td_center = td_center.nextSibling;
  12.                        var td_right = td_center.nextSibling;
  13.                            while (td_right.nodeName != "TD" ) td_right = td_right.nextSibling;
  14.                        var found = new Array(td_left, td_center, td_right);
  15.                            return found;
  16.                            }
  17. function buttonOver(table) {
  18.                          if (button_down == table.id) return true; //Va détécter si un bouton est survolé !
  19.        var tds = findCells(table);
  20.                          tds[0].className = "bttn_left_on";
  21.                          tds[1].className = "bttn_center_on";
  22.                          tds[2].className = "bttn_right_on";
  23.                            }
  24. function buttonOut(table) {
  25.                          if (button_down == table.id) return true;//Va détécter si un bouton est relaché !
  26.        var tds = findCells(table);
  27.                          tds[0].className = "bttn_left_out";
  28.                          tds[1].className = "bttn_center_out";
  29.                          tds[2].className = "bttn_right_out";
  30.                           }
  31. function buttonUp(table) {
  32.                          if (button_down == table.id) return true;//Va détécter si un bouton n'est pas enfoncé !
  33.        var tds = findCells(table);
  34.                          tds[0].className = "bttn_left_up";
  35.                          tds[1].className = "bttn_center_up";
  36.                          tds[2].className = "bttn_right_up";
  37.                            }
  38. function buttonDown(table) {
  39.                              if (button_down == table.id) return true;//Va détécter si un bouton est enfoncé !
  40.                          var tds = findCells(table);
  41.                          tds[0].className = "bttn_left_down";
  42.                          tds[1].className = "bttn_center_down";
  43.                          tds[2].className = "bttn_right_down";
  44.                            }
  45. function buttonClick(table) {
  46.                               if (null != button_down)  //On va chercher ici si un bouton est enfoncé ou non, si oui on change l'image!
  47.            {
  48.                              if (document.getElementById)
  49.            {
  50.                                    var table_down = document.getElementById(button_down)
  51.                                    } else if (document.all && !document.getElementById)
  52.                      {
  53.                                             eval("var table_down = document.all."+button_down+";" );
  54.                                              }
  55.          if (table_down) buttonOut(table_down);
  56.                                  }
  57.         button_down = table.id;
  58.         if (table_down) buttonOut(table_down);        
  59.                             }
  60.     <!--   //Fonction qui lance les 2 frames
  61.         function TwoFrames(URL1,Fr1Name,URL2,Fr2Name)
  62.           {
  63.                   parent.frames[Fr1Name].location.href=URL1;
  64.                   parent.frames[Fr2Name].location.href=URL2;
  65.                  }
  66.     //-->
  67. </script>


 
mais cela ne focntionne pas. Et voilà ce que XML Spy me retourne :
This file is not well formed. Name letter(Letter(|'_'| ':')) Name-Character * expected.
Dans ce cas ci sa indique le ligne N°53 entre les 2 &. :??:  
Est ce que cela veut dire que je dois remplacer dans tout mon code les _???  
Et je voudrais savoir si je peux placer simplement mon script à cette endroit de mon code XSL??

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml:stylesheet  type="text/css" href="Style.css"?>
  3. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
  4. <xsl:template match="modules">           
  5.      <html>
  6.           <head>
  7.                     <title>XSL Example</title>
  8.           <script language="JavaScript">
  9.            ...
  10.           </script>
  11.           </head>           
  12.           <body bgcolor="#ABACD5" >
  13.             </body>
  14. </html>
  15. </xsl:template>
  16. </xsl:stylesheet>


Je voudrais également savoir comment changer la couleur du background, car quand je fais un bgcolor dans le body, le fond reste blanc !
 
J'espère avoir posté sa dans la bonne section, car la section XML/XSl semble être pour le tool indiqué et pas vraiment pour les questions relatives au XML/XSl.
 
Merci à tous de votre aide,  :jap:


Message édité par Devil6662 le 28-04-2005 à 16:40:46
mood
Publicité
Posté le 27-04-2005 à 12:29:49  profilanswer
 

n°1062603
FlorentG
Posté le 27-04-2005 à 12:39:41  profilanswer
 

bgcolor existe pas, c'est plutôt .style.backgroundColor = '#fff' ;) Dommage que y'a des mix avec du vieux HTML (c'est pas <script language="javascript">, mais <script type="text/javascrtipt"> ). Et le document.all qui traîne, c'est encore pire ;)

n°1062716
Devil6662
Posté le 27-04-2005 à 14:04:17  profilanswer
 

Pour la couleur de backgroung sa foire, j'ai essayer ce que tu m'as dis mais sa na va pas !
FlorentG comment dois mettre sa dans ma balise body d'après toi ????
 
Pour le problème des erreurs sur le JavaScript j'ai trouvé mon erreur, il fallait rajouter ceci <![CDATA[ ... code ... ]]> entre les balises <SCRIPT> et </SCRIPT> comme suit :

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml:stylesheet  type="text/css" href="Style.css"?>
  3. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
  4. <xsl:template match="modules">           
  5.      <html>
  6.           <head>
  7.           <title>XSL TEST</title>
  8.           <script language="JavaScript">
  9.           <![CDATA[
  10.            ..... (Voir au dessus)
  11.             ]]>
  12.           </script>
  13.           </head>           
  14.           <body style="background-color:#ABACD5;">
  15.                   <h1><u><center>Your Modules :</center></u></h1>
  16.    <xsl:apply-templates select="header/col"/>
  17.    <center>
  18.     <table border="1" bgcolor="lime">
  19.      <thead align="center">
  20.               <tr>
  21.               <td><strong>
  22.                                                  <xsl:value-of select="header/col[1]/@name"/>
  23.         </strong></td>
  24.               <td><strong>
  25.                                                  <xsl:value-of select="header/col[2]/@name"/>
  26.         </strong></td>
  27.         </tr>
  28.         <tr>
  29.               <td><strong>
  30.                                                  <xsl:value-of select="row/col[1]"/>
  31.         </strong></td>
  32.               <td><strong>
  33.                                                  <xsl:value-of select="row/col[2]"/>
  34.         </strong></td>
  35.         </tr>
  36.         <table class="bttn" width="780" cellpadding="0" cellspacing="0">
  37.              <tr>
  38.              <td>
  39.                       <table  ID="reporting" class="bttn" cellpadding="0" cellspacing="0" onMouseOver="buttonOver(this);"             onMouseOut="buttonOut(this);" onMouseDown="buttonDown(this);"
  40.            onMouseUp="buttonUp(this);" onClick="buttonClick(this);">
  41.                          <tr>
  42.                              <td class="bttn_left_out"><table class="bttn" cellspacing="0" width="12"><tr><td></td></tr>             </table></td>
  43.                              <td class="bttn_center_out">
  44.                            <A HREF="javascript:TwoFrames('../fct1024/fctreport.html','fct','../main/reporting/Report.html','main');">           Reporting</A></td>
  45.                              <td class="bttn_right_out"><table class="bttn" cellspacing="0" width="12"><tr><td></td></tr>             </table></td>
  46.                          </tr>
  47.                       </table>
  48.          </td>
  49.         </tr>
  50.         </table>      
  51.      </thead>
  52.             <xsl:for-each select="header/col">
  53.                  <xsl:value-of select="@name"/> 
  54.                  <xsl:if test="not (position()=last())">
  55.                        <xsl:text>blablabla</xsl:text>
  56.                     </xsl:if>
  57.                    </xsl:for-each>
  58.      <!-- <xsl:apply-templates select="row/col[2]"/> -->
  59.     </table>
  60.       }
  61.    </center>
  62.             </body>
  63. </html>
  64. </xsl:template>
  65. </xsl:stylesheet>


 
Mais par contre, maintenant que j'appel mes fonctions JS (onClick(),...)dans mon code XSL sa ne fonctionne pas ( entre les lignes 36 et 47 ), rien ne s'affiche, meme pas les images ! Je ne sais pas pourquoi, je ne comprends pas d'ou vient cette erreur ! :?  
De plus je voudrais savoir si la ligne suivante est bonne pour importer mon CSS :

Code :
  1. <?xml:stylesheet  type="text/css" href="Style.css"?>


 
Merci à tous pour votre aide, pour ma part je continue a chercher de mlon coté.

n°1062980
frenchkiss
Posté le 27-04-2005 à 16:21:51  profilanswer
 

ben pourquoi tu mets pas ton script dans un fichier .js et y faire reference dans ton xsl ?  
 tout comme tu le fais tres bien pour ton css dailleurs..

n°1062983
FlorentG
Posté le 27-04-2005 à 16:23:09  profilanswer
 

Ouais, au même titre qu'il faut dégager les styles dans des fichiers css séparés, il _faut_ dégager les scripts dans des .js

n°1062985
frenchkiss
Posté le 27-04-2005 à 16:23:49  profilanswer
 

sinon dans le xslt c'est ca que tu dois mettre:

Code :
  1. <xsl:processing-instruction name="xml-stylesheet">href="style.css" type="text/css"</xsl:processing-instruction>

n°1062986
Devil6662
Posté le 27-04-2005 à 16:25:20  profilanswer
 

je vais essayer mais je ne pense pas que cela va résoudre mon problème.
 
En fait mon gros problème est l'utilisation de mon javascript au sein meme du body de mon fichier XSL. je voudrais faire appel à mes fonction JS, et à mon CSS mais rien ne se passe, je place le code suivant dans le body du fichier XSL et rien ne s'affiche, pas même un lien, rien, qued, comme si le code ne fait rien:

Code :
  1. <table class="bttn" width="780" cellpadding="0" cellspacing="0">
  2. <tr>
  3.     <td>
  4.         <table  ID="reporting" class="bttn" cellpadding="0" cellspacing="0" onMouseOver="buttonOver(this);" onMouseOut="buttonOut(this);" onMouseDown="buttonDown(this);" onMouseUp="buttonUp(this);" onClick="buttonClick(this);">
  5.             <tr>
  6.                   <td class="bttn_left_out"><table class="bttn" cellspacing="0" width="12"><tr><td></td></tr>
  7.            </table></td>
  8.           <td class="bttn_center_out">
  9.           <A HREF="javascript:TwoFrames('../fct1024/fctreport.html','fct','../main/reporting/Report.html','main');">
  10.                Reporting
  11.           </A></td>
  12.           <td class="bttn_right_out"><table class="bttn" cellspacing="0" width="12"><tr><td></td></tr>
  13.           </table></td>
  14.         </tr>
  15. </table>
  16. </td>
  17. </tr>
  18. </table>


 
Alors en gros je me demande comment je dois faire pour voir mes boutons s'afficher avec le lien et le CSS qui leurs confèrent leur aspect??
Comment faire pour atteindre mon code JS, car vraisemblablement je m'y prend mal, je suis un noob là dedans, et j'ai vraiment besoin de votre aide,
Merci d'avance à tous  :jap:

n°1062999
Devil6662
Posté le 27-04-2005 à 16:28:24  profilanswer
 

Et pour le .js je peux faire comme sa??

Code :
  1. <xsl:processing-instruction name="xml-stylesheet">href="script.js" type="text/js"</xsl:processing-instruction>


et/ou

Code :
  1. <?xml-stylesheet href="script.js" type="text/js"?>


 
Ou est ce que je dois m'y prendre différement???
Merci a tous les 2  :hello:

n°1063001
FlorentG
Posté le 27-04-2005 à 16:30:18  profilanswer
 

Euh... Commence pas à essayer tout et n'importe quoi, hein ;) Un .js n'est pas une feuille de style...

n°1063003
frenchkiss
Posté le 27-04-2005 à 16:31:30  profilanswer
 
mood
Publicité
Posté le 27-04-2005 à 16:31:30  profilanswer
 

n°1063004
Devil6662
Posté le 27-04-2005 à 16:32:04  profilanswer
 

Je dois faire quoi alors???  
Un import???

n°1063039
Devil6662
Posté le 27-04-2005 à 16:56:17  profilanswer
 

Ceci dans ma balise SCRIPT:

Code :
  1. language=JavaScript src="menu_array.js" type=text/javascript

???

n°1063918
frenchkiss
Posté le 28-04-2005 à 10:04:21  profilanswer
 

Imagine un atelier dans un garage ou l'on construit des voitures. Le mecano c'est le procceseur xslt. si tu lui dis qu'il doit mettre une porte sur la voiture il va comprendre. mais si tu lui donne une porte en tant "qu'outil" dans la main il sera pas quoi en faire, et il te le mettra pas sur ta caisse..
les processing instructions servent a dire : genere moi un truc comme ca <? ... > dns mon fichier resultat. ( met une porte sur la voiture)
si tu met directement <?... > dans le xslt ca revient a lui donner la porte comme outil..  
 
c'est plus clair?

n°1063955
Devil6662
Posté le 28-04-2005 à 10:23:07  profilanswer
 

Oui c'est beaucoup plus clair, merci frenchkiss :jap:


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

  [RESOLU][XSL/JavaScript]problème d'intégration code JS dans le XSL

 

Sujets relatifs
Problème MD5[Java] Problème de compatibilité [Résolu]
[JAVA] JNI, problème création fenetre en c++[Flash] problème avec la fonction hitTest (problème illustré)
petit probleme d'ecriture dans un fichierProblème installation classe avec JRE
problème avec les layers (Front Page)Problème concaténation variables [RESOLU]
Plus de sujets relatifs à : [RESOLU][XSL/JavaScript]problème d'intégration code JS dans le XSL


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