[JS] Récupération d'un fihcier XML externe

Récupération d'un fihcier XML externe [JS] - HTML/CSS - Programmation

Marsh Posté le 19-02-2006 à 13:29:43    

bonsoir :o
 
Je suis en train de faire un script JS pour me permettre de récuperer sur last.fm le titre que je suis en train de lire pour l'afficher sur ma page. Pour cela, j'utilise la manipulation XML dans javascript.
 
Voici mon code, le point d'entrée est displayJukeBox. Pour l'instant, je bosse sous firefox, d'ou des manque autour du MSXML :  
 

Code :
  1. var lastXmlDoc = null;   // le document XML de backend de last.fm.
  2. function lastDocumentLoaded () {
  3.     var jukeboxDiv = document.getElementById('jukebox');
  4.     var songTitle = '*coin coin*';
  5.     var htmlRes;
  6.     if (lastXmlDoc == null) {
  7.         htmlRes = "le jukebox est casse. last.fm est mort ou votre browser renacle du fion.";
  8.     } else {
  9.         songTitle = getSongTitle (lastXmlDoc);
  10.         if (songTitle == null) {
  11.             htmlRes = '<p>Le jukebox de ' + userName + ' est eteint pour le moment</p>';
  12.         } else {
  13.             htmlRes = '<p>Le jukebox de ' + userName + ' est en train de jouer <b>' + songTitle + "</b></p>";
  14.         }
  15.     }
  16.     jukeboxDiv.innerHTML = htmlRes;
  17. }
  18. function loadLastFMDocument (username) {
  19.     var url = "http://ws.audioscrobbler.com/1.0/user/"+username+"/recenttracks.xml"
  20.     if (document.implementation && document.implementation.createDocument) {
  21.         lastXmlDoc = document.implementation.createDocument("", "", null);
  22.         lastXmlDoc.onload = lastDocumentLoaded;
  23.     } else if (window.ActiveXObject) {
  24.         lastXmlDoc = new ActiveXObject("Microsoft.XMLDOM" );
  25.     } else {
  26.         alert('Your browser can\'t handle this script');
  27.         return NULL;
  28.     }
  29.     lastXmlDoc.load(url);
  30.     return lastXmlDoc;
  31. }
  32. function displayJukeBox (userName) {
  33.     var lastXmlDoc = loadLastFMDocument (userName);
  34.     // La suite sera asynchtone ....
  35. }


 
Une fois dans loadLastFMDocument, mon URL est correcte. Ma creation de XmlDocument se passe bien, je lui affecte comme onload ma méthod qui va parser le résultat pour l'afficher dans mla page.  
 
Sauf qu'une fois sur la ligne lastXmlDoc.load(url);, le debugger rentre, et n'en ressort jamais. Ma méthode sur le onload n'est jamais appelée.
J'avais déjà utilisé ce script pour charger un document XML situé sur la même machine, et là, ça marchais très bien.
 
Voyez vous ce que j'ai oublié ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 19-02-2006 à 13:29:43   

Reply

Marsh Posté le 19-02-2006 à 13:32:00    

Ah si, dans ma console JS, j'ai un très chic :  
 

Citation :


Error: uncaught exception: Permission denied to call method XMLDocument.load

 
 


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 19-02-2006 à 13:39:45    

c'est pas avec ça que web 2.0 sera pret pour le desktop :/
 
J'ai gagné le droit de faire un redirecteur en local....
 
Bon, le redirecteur en PHP, c'est pas violent, et ça peut servir :  
 

Code :
  1. kadreg@rincevent:/var/www/board$ cat last.php
  2. <?php
  3. $userName = $_GET ["username"];
  4. $url = "http://ws.audioscrobbler.com/1.0/user/".$userName."/recenttracks.xml";
  5. header("Content-type: text/xml" );
  6. readfile ($url);
  7. ?>
  8. kadreg@rincevent:/var/www/board$


Message édité par kadreg le 19-02-2006 à 15:03:36

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed