RSS-каналы, загруженные API Google, отображаются только после обновления, а не после загрузки первой страницы. - PullRequest
0 голосов
/ 21 января 2012

У меня есть страница, показывающая RSS-каналы с Google API, и есть проблема с инициализацией.Когда страница загружается, новости не отображаются.Если я обновлю страницу, то они есть.

У меня есть это в HTML

<div id="snews" style="position:relative; width: 100%; height: 100%; overflow-y: auto; overflow-x: hidden;">
    <div id='feed-control'>
       <span style='color:#676767;font-size:11px;margin:10px;padding:4px;'>Loading...</span>
    </div>

        <script type='text/javascript'>
        // Load the feeds API and set the onload callback.
        google.load('feeds', '1');
            load_rss("http://www.catholicnewsagency.com/rss/news.xml");
        google.setOnLoadCallback(load_rss);
    </script>
</div> <!-- End snews -->

В эту функцию вызываются вызовы API Google для загрузки элементов.новости для показа в первый раз?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2012

Проблема заключалась в том, что элементы контейнера еще не были загружены.Мне пришлось поместить скрипт в document.ready.

0 голосов
/ 28 января 2012

Начните с того, что не вызывайте вашу функцию load_rss дважды на странице, когда вам это не нужно.

load_rss("http://www.example.com/rss/news.xml");
google.setOnLoadCallback(load_rss);

Удалите одиночный вызов load_rss и оставьте google.setOnLoadCallback(load_rss);, поскольку это вызоветкогда она готова к запуску функции.

Вызов обработчика onLoad

.setOnLoadCallback(callback) - это статическая функция, которая регистрирует указанную функцию-обработчик, которая будет вызвана один разстраница, содержащая этот вызов, загружается, где обратный вызов является обязательной функцией, вызываемой, когда содержащий документ загружается и API готов к использованию (например, после onLoad).Эта функция реализована в пространстве имен Google (т. Е. google.setOnLoadCallback(callback);)

Затем перейдите к объявлению функции и измените первые несколько строк на следующие:

function load_rss() {
    var url = "http://www.example.com/rss/news.xml";
    var feed = new google.feeds.Feed(url);

Здесь вы заметите удаление google.load('feeds', '1');, которое вы уже вызывали непосредственно перед setOnLoadCallback.

И если вы не хотите, чтобы «Загрузка ...» всегда отображалась, вы должны вместо этого поменять содержимоедобавление так:

$('#feed-control').html('<table id="rssentries"></table>');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...