2015-08-20 5 views
0

Я пытаюсь загрузить несколько каналов на веб-сайте с помощью Google Feed Api. У меня проблема с загрузкой изображений в мои каналы и невозможность найти решение. Может ли мне помочь? Ниже приведен код.API Google Feed - Не удалось загрузить изображения с ленты

корм имеет следующую разметку:

<img>http://img.ephoto.sk/images/content/articles/c285367e4e39cfa8056f2c95ec715f76c1e758af.jpg</img> 

JS код:

function parseFeed(url, container) { 
$.ajax({ 
    url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=5&callback=?&q=' + encodeURIComponent(url), // "num=5" will show 5 articles 
    dataType: 'json', 
    success: function (data) { 
     // log object data in console 
     console.log(data.responseData.feed); 
     // for each entry... * 
     $.each(data.responseData.feed.entries, function (key, value) { 
      var title = '<li><a class="title" href="' + value.link + '" target="_blank">' + value.title + '</a></li>'; 
        var image = '<img class="thumbnail" src="' + value.img + '">'; 
      var entry = '<div class="entry"><ul>' + image + title + '</ul></div>'; 
      // * append entire entry in container 
      $(container).append(entry); 
     }); 
    }, 
    // if there's an error... * 
    error: function (errorThrown) { 
     // * log error message in console 
     console.log(errorThrown); 
     // * show error message 
     alert('Niekde vo feede sa vyskytla chyba.'); 
    } 
}); 
} 
$(document).ready(function() { 
    parseFeed('http://feeds.feedburner.com/FotoportlEphotosk-FotoFotografieFotoaparty', '#ephoto'); 
}); 

Codepen: http://codepen.io/MichalSK/pen/rVEwPy

Есть ли также любое решение, чтобы сделать этот код, чтобы работать с этой разметкой?

<image> 
<url>http://...</url> 
<title>Lorem ipsum</title> 
<pubDate>Wed, 19 Aug 2015 13:00:00 +0200</pubDate> 
<link>http://...</link> 
</image> 

Я надеюсь, что это поможет и другим людям, которые ищут работу с Google Feed Api.

ответ

0

У вас есть параметр img в параметрах data.responseData.feed.entries? ваш value.link выполняет выборку значений параметра связи от параметров data.responseData.feed.entries, но у вас нет параметра «IMG», чтобы принести его значение для

var image = '<img class="thumbnail" src="' + value.img + '">';

Так что вам нужно хранить ссылку вашего изображения в data объекта вы загружаете , прежде чем вы получите неопределенный параметр.

В приведенном ниже коде изображены изображения, поскольку для этих изображений имеется определенная ссылка. в data.responseData.feed.entries.value нет img параметра, чтобы получить ссылку по своей стоимости

function parseFeed(url, container) { 
 
$.ajax({ 
 
    url: document.location.protocol 
 
     + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=5&callback=?&q=' 
 
     + encodeURIComponent(url), // "num=5" will show 5 articles 
 
    dataType: 'json', 
 
    success: function (data) { 
 
     // log object data in console 
 
     console.log(data.responseData.feed); 
 
     // for each entry... * 
 
     $.each(data.responseData.feed.entries, function (key, value) { 
 
      //valid link to image source     
 
      var img = "http://rocketdock.com/images/screenshots/Debian-Logo.png" 
 
      var title = '<li><a class="title" href="' + value.link 
 
      + '" target="_blank">' + value.title + '</a></li>'; 
 
      var image = '<img class="thumbnail" src="' + img + '">'; 
 
      var entry = '<div class="entry"><ul>' + image + title + '</ul></div>'; 
 
      // * append entire entry in container 
 
      $(container).append(entry); 
 
     }); 
 
    }, 
 
    // if there's an error... * 
 
    error: function (errorThrown) { 
 
     // * log error message in console 
 
     console.log(errorThrown); 
 
     // * show error message 
 
     alert('Niekde vo feede sa vyskytla chyba.'); 
 
    } 
 
}); 
 
} 
 
$(document).ready(function() { 
 
    parseFeed('http://feeds.feedburner.com/FotoportlEphotosk-FotoFotografieFotoaparty', 
 
'#ephoto'); 
 
});
html,body { 
 
background-color:#222; 
 
color:#fff; 
 
font-family:"Noto Sans", sans-serif; 
 
font-size:1em; 
 
font-weight:400; 
 
line-height:1.45; 
 
} 
 

 
a{ 
 
    color: #fff; 
 
    text-decoration: none; 
 
} 
 
img{ 
 
    width:50px; 
 
    height:50px; 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
 

 
<div id="container"> 
 
    <div id="ephoto"></div> 
 
</div>

Проверьте свои данные из консоли вы не может найти img параметра.

+0

Thx, но как я могу сохранить ссылку на каждое изображение в фиде? – MichalCh

+0

, если вы хотите, чтобы загружалось только одно изображение, добавьте его, если вы хотите, чтобы в каждом списке были разные изображения, затем создайте объект или массив для списка изображений. Затем вы можете вызвать их через параметры объекта – developer

+0

Да, но я не знаю, как загрузить изображение, это var img = "http://rocketdock.com/images/screenshots/Debian-Logo.png" не очень полезно. – MichalCh

Смежные вопросы