2010-11-17 13 views
1

Je veux obtenir des images d'un flickr rss mais ce code ne les obtiendra pas. Voici ce que je me suis levé après une aide de ma requête originale ici: Jquery in Internet Explorer: find image problem(works in FF and Chrome)Obtenir des images de rss sur un autre domaine (puis l'ajouter)

Le problème est d'obtenir les données dans le bon format à ma page Web. URL de ma page est: zalastax.co.cc/pictures.html~~V~~singular~~3rd

Javascript:

$.ajax({ 
    type: "GET", 
    url: "js/getflickreasy.php", 
    dataType: "xml", 
    success: function(data) { 
     $(data).find("item").each(function() { 

      var item = $(this), title, description, thumbnail; 

      title = item.find("title").text(); 
      description = item.find("description").text(); 
      thumbnail = item.find("img").attr("src"); 
     }); 
    } 
}); 

PHP:

<? 
header("content-type: text/xml"); 
readfile("http://api.flickr.com/services/feeds/[email protected]&lang=en-us&format=xml"); 
?> 

Edit: Code Mathews fonctionne.
Mais j'ai un problème avec l'ajout de certaines données.

var currentImage = 0; 
//get flicker images from rss. 
$.getJSON("http://api.flickr.com/services/feeds/[email protected]&lang=en-us&format=json&jsoncallback=?", function(data) { 
    $(data.items).each(function() { 
     var item = this, 
      title, description, thumbnail; 
     title = item.title; 
     description = item.description; 
     thumbnail = item.media.m; 
     if (currentImage % 3 === 0) { 
      $("#apa").append("<p>HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH</p>"); 
     } 
     currentImage++; 
     $("#apa").append("<div id=\"div" + currentImage + "\" class=\"imageContainer pictDiv\"><img id=\"img" + currentImage + "\" class=\"bild pictImg\" src=\"" + thumbnail + "\" /></div>"); 
     $("#bakgrund").append("<img id=\"bkg" + currentImage + "\" class=\"bgrund pictBkg\" src=\"Bilder/polaroid.png\" />"); 
    }); 

    $("#bakgrund").append("<img id=\"bkg" + currentImage + "\" class=\"bgrund pictBkg\" src=\"Bilder/polaroid.png\" />"); 
}); 

Ce code fonctionne dans Google Chrome. Dans Firefox, il récupère les données mais ne fait pas l'append. Si j'essaie d'ajouter quelque chose d'autre comme du texte simple, Firefox ne l'ajoutera pas non plus.

Cela fonctionne quand je l'essaie via jsfiddle.net mais ce n'est pas le cas lorsque je l'essaie via ma propre page Web.

+0

Cela fonctionne très bien pour moi dans Firefox - http://jsfiddle.net/tBAXV/ – Sam

+0

Je sais, ça marche quand on l'utilise via le violon mais ça ne fonctionne pas quand on l'utilise sur ma page web. J'ai essayé avec la source complète et seulement cette source et il ne s'ajoutera pas. vérifier à http://www.zalastax.co.cc/pictures.html – Zalastax

Répondre

1

Vous pouvez le faire sans PHP, en utilisant JSONP:

$.getJSON("http://api.flickr.com/services/feeds/[email protected]&lang=en-us&format=json&jsoncallback=?", function(data) { 
     $(data.items).each(function() { 
      var item = this, title, description, thumbnail; 
      title = item.title; 
      description = item.description;; 
      thumbnail = item.media.m; 
     }); 
    }); 

J'ai fait une jsFiddle demo .

+0

Votre code fonctionne lors de l'utiliser dans jsFiddle mais quand je l'essaie sur http://zalastax.co.cc/pictures.html avec Firefox et IE, il ne créera pas les images. Il le fera en utilisant Google Chrome. – Zalastax

+0

@Zalastax, le DOM n'est pas encore chargé. Vous devez le faire dans ['ready'] (http://api.jquery.com/ready/), ou dans votre gestionnaire' load' existant. –

+0

LoL. Je l'avais dans une version précédente du code mais apparemment il a été perdu quelque part sur la route de débogage. Connaissez-vous un site web où vous pouvez apprendre à être capable de déboguer ou est-ce juste pour connaître la langue vraiment bien? – Zalastax