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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  XML et JavaScript dans le navigateur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

XML et JavaScript dans le navigateur

n°1377889
Arjuna
Aircraft Ident.: F-MBSD
Posté le 31-05-2006 à 02:31:09  profilanswer
 

Petite question à 30 centimes...
 
http://magicbuzz.multimania.com/test/g1.xml
 
=> Sous IE, ça devrait afficher 2 boutons, qui permettent d'avancer et reculer dans les pages de la gallerie
 
Mais sous Mozilla, que néni.
Normal, c'est désactivé.
Pourquoi ?
Parceque Moz ne support pas les objets "document.XMLDocument" et "document.XSLDocument" en JavaScript.
 
J'imagine naïvement qu'il y a un équivalent... Mais lequel ?
 
(voir le fichier XSL assicié au XML... j'en vois déjà arriver en disant "y'a pas de JS dans ton bignou :o" ;))

mood
Publicité
Posté le 31-05-2006 à 02:31:09  profilanswer
 

n°1377950
Arjuna
Aircraft Ident.: F-MBSD
Posté le 31-05-2006 à 10:09:20  profilanswer
 

Je dois le faire exprès quand je poste un truc...
 
Y'a jamais personne qui répond :cry:

n°1377963
anapajari
s/travail/glanding on hfr/gs;
Posté le 31-05-2006 à 10:25:50  profilanswer
 

tu as window.XSLTProcessor sous FF et derrière tu dois utiliser importStylesheet, transformtodocument et xmldocumenttostring...
 
Tiens j'avais fait c'est fonction pour appliquer mes xslt:

Code :
  1. function applyXSLT (xml, xsl) {
  2.   /*** use transformNode methods for doing XSLTranformation with activeX object ***/
  3.   if (window.ActiveXObject){
  4.     return xml.transformNode(xsl);
  5.   }else{
  6.     /*** use XSLTProcessor in other case: firefox, mozilla ... ***/
  7.     /*** Create instance of processor ***/
  8.     if (window.XSLTProcessor != null) {
  9.       var xsltProc  = new XSLTProcessor();
  10.       /*** Import style pass by argument ***/
  11.       xsltProc.importStylesheet(xsl);
  12.       /*** Transform it with processor ***/
  13.       var xsltDoc = xsltProc.transformToDocument(xml);
  14.       return XMLDocumentToString(xsltDoc);
  15.     } else {
  16.       /*** server side transo ***/
  17.     }
  18.   }
  19. }


 
Mais bon, y'a pas d'équivalent sur Opera ( enfin si mais sur le 9beta) par exemple. Du coup on a même du rajouter un partie en ajax qui "fait faire " l'application de la xslt coté serveur ( l'échange est fait via xmlhttprequest qui est lui supporté par Opera).

Message cité 1 fois
Message édité par anapajari le 31-05-2006 à 10:26:56
n°1377964
Arjuna
Aircraft Ident.: F-MBSD
Posté le 31-05-2006 à 10:27:48  profilanswer
 

xml et xsl viennent d'où ?

n°1377986
Arjuna
Aircraft Ident.: F-MBSD
Posté le 31-05-2006 à 10:59:50  profilanswer
 

En effet, mon JS doit :
-> Modifier un élément "xsl:variable" dans la feuille XSL
-> Modifier des attributs pour certains éléments dans la feuille XML
-> Re-tranformer le tout pour voir les changements.
 
Je peux à la rigueure zapper la modification de la feuille XSL si ça pose problème.
 
En fait, actuellement, le XSL, au chargement, avant tout script :
-> teste une variable initialisée à 1000
-> pour chaque image, si son ID est inférieur à cette variable, l'affiche
 
Ensuite, je JS récupère depuis le XML le nombre d'images à afficher à la fois.
Modifie le XSL pour changer cette variable avec ce nombre d'images.
 
Puis sur le click des boutons, modifie les ID des images, et réapplique le XSL de façon à naviguer dans lesimages.
 
J'ai donc besoin de pouvoir jouer avec les documents XML et XSL.
 
Je ne peux pas attaquer le serveur (ce serait bien plus simple ;)) étant donné que le but est de pouvoir distribuer sur n'importe quel serveur la gallerie d'image, sans devoir tenir compte de la plateforme du serveur.
 
Si vraiment y'a pas moyen de moyenner, j'ai aussi pensé à une solution "full js", mais j'aurais préféré utiliser les fonctionnalité du XSL à la place...


Message édité par Arjuna le 31-05-2006 à 11:00:03
n°1377991
anapajari
s/travail/glanding on hfr/gs;
Posté le 31-05-2006 à 11:14:53  profilanswer
 

Dans ce que je t'ai donné xml et xsl étaient deux flux récuperer du server via xmlhttprequest.
Mais en fait ton cas est légèrement différent puisque c'est le document lui même qui est le flux xml et que tu veux modifier la xsl associée à la volée ... et je me suis jamais penché sur ce cas :D
Mais si tu "zappes" la modification de la XSLT tu ne devrais plus avoir de problème, le seul truc c'est que tu vas devoir faire "le tri" en js, c'est bourrin mais via dom c'est pas trop dur [:spamafote]
 
edit:
D'ailleurs moi si je devais faire ton truc, je repartirais sur ce dont j'ai l'habitude ;)
- un page html  
- récupération du flux xml via xmlhttprequest
- récupération du flux xsl via xmlhttprequest
- application de la xslt coté client  
- tri dans le xml resultant via dom
- affichage via dom dans la page html


Message édité par anapajari le 31-05-2006 à 11:17:35
n°1377994
masklinn
í dag viðrar vel til loftárása
Posté le 31-05-2006 à 11:17:37  profilanswer
 

anapajari a écrit :

Mais bon, y'a pas d'équivalent sur Opera ( enfin si mais sur le 9beta) par exemple.


Il n'y a aucun support dans Safari non plus [:petrus75]
 
Le navigateur gère le XML et les XSLT, mais il n'y a aucun interface JS exposée.
 
Sinon Arjuna je pense que de temps en temps tu devrais visiter DevMo, parce que genre là il suffit de faire une petite recherche et on arrive sur DevMo - XSLT avec en première page un article sur l'utilisation de l'interface JavaScript de Mozilla pour les transformations XSL
 
D'ailleurs l'interface vers le processeur XSLT implémentée dans Opera9 est également un objet XSLTProcessor.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1378019
Arjuna
Aircraft Ident.: F-MBSD
Posté le 31-05-2006 à 11:55:00  profilanswer
 

Voilà, corrigé en version "full js" (avec un joli message pour les gens qui n'utilisent pas le JS)
 
-- edit: Corrigé avec un message un peu plus politiquement correct :D


Message édité par Arjuna le 31-05-2006 à 12:11:01
n°1378027
Arjuna
Aircraft Ident.: F-MBSD
Posté le 31-05-2006 à 11:59:22  profilanswer
 

masklinn a écrit :

Sinon Arjuna je pense que de temps en temps tu devrais visiter DevMo, parce que genre là il suffit de faire une petite recherche et on arrive sur DevMo - XSLT avec en première page un article sur l'utilisation de l'interface JavaScript de Mozilla pour les transformations XSL


Ze soucy, c'est que ça rentre pas du tout dans ce que je veux faire.
Moi je veux pas me faire chier à recharger le XML et XSL à chaque click de l'utilisateur, sinon autant générer 25000 pages HTML statiques...
 
Je voulais donc savoir si Moz stockait dans un coin, de façon accessible, comme le fait IE, les flux XML/XSL qu'il a utilisé pour générer le document.
Pas envie de refaire une requête à chaque fois...
 
C'est d'autant plus stupide de devoir faire une requête HTTP que le jour où ton flux XML est généré par un code côté Server, tu vas avoir un flux différent à chaque fois... Super pratique !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  XML et JavaScript dans le navigateur

 

Sujets relatifs
Besoin d'aide pour les listes déroulantes et javascriptProbleme génération tableau après parsing XML
[Javascript] Lien HTML en blank[PHP/Javascript]
problème, plusieurs diaporama javascript dans un pageBon site pour javascript..
Création d'une base de donneés à partir d'un fichier XML en VB.NETJavascript connection internet
cacher du code javascript grace a PHP, possible ?Editer un XML avec DOM et PHP5
Plus de sujets relatifs à : XML et JavaScript dans le navigateur


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