Google AJAX Feed API: не удается прочитать свойство 'LINK_TARGET_BLANK' из неопределенного

Я использую следующий фрагмент кода (включены только несколько строк), чтобы включить RSS-каналы в мое приложение.

GFdynamicFeedControl.prototype.parseOptions_ = function(options){
.....
....
   this.options = {
      ....
      ....
      feedCycleTime : GFdynamicFeedControl.DEFAULT_FEED_CYCLE_TIME,
      linkTarget : google.feeds.LINK_TARGET_BLANK,
      .......
      .......
   }

}
FdynamicFeedControl.prototype.setup_ = function(container) {
  if (container == null) return;
  this.nodes.container = container;

  // Browser determination code.
  ....
  ....
  // The feedControl instance for generating entry HTML.
  this.feedControl = new google.feeds.FeedControl();
  this.feedControl.setLinkTarget(this.options.linkTarget);

  // The feeds
  this.expected = this.feeds.length;
  this.errors = 0;

  for (var i = 0; i < this.feeds.length; i++) {
    var feed = new google.feeds.Feed(this.feeds[i].url);
    feed.setResultFormat(google.feeds.Feed.JSON_FORMAT);
    feed.setNumEntries(this.options.numResults);
    feed.load(this.bind_(this.feedLoaded_, i));
  }
};

Код для использования вышеуказанной функции в JSP моего приложения:

<script>
function LoadDynamicFeedControl() {
      var feeds = new Array ();

      feeds [feeds.length] =
    {title: 'RSS feeds',
     url: 'hard-coded URL'

    };

    }
      var options = {
        stacked : false,
        horizontal : false,
        title : ""
      }

      new GFdynamicFeedControl(feeds, 'feed-control', options);
    }
    // Load the feeds API and set the onload callback.
    google.load('feeds', '1');

    google.setOnLoadCallback(LoadDynamicFeedControl);
</script>

Кусок кода отлично работает в Firefox, но в chrome выдает ошибку:

"Cannot read property 'LINK_TARGET_BLANK' of undefined"

на линии linkTarget : google.feeds.LINK_TARGET_BLANK,

Я прочитал эту ссылку, но решение не сработало.

Затем я наткнулся на этот пост: функции обратного вызова JavaScript и API фида Google

Но я не знаю, как реализовать этот сценарий в моем случае (новичок в Google API вещи).

Не могли бы вы предложить, какие изменения необходимо внести, чтобы код работал в Chrome?

1 ответ

Решение

Я нашел решение.

Я заменил заявления

google.load('feeds', '1');
google.setOnLoadCallback(LoadDynamicFeedControl);

с

google.load('feeds', '1', {"callback": LoadDynamicFeedControl});

Это сработало для меня.

Но затем ошибка была заменена предупреждением "заблокировано]. На странице https://.jsp был запущен небезопасный контент из http://www.google.com/uds/?file=feeds&v=1&async=2".

и RSS-каналы все еще не были видны.

Поэтому я щелкнул правой кнопкой мыши на значке Chrome, изменив цель

"C:\\ Данные приложения \Google\Chrome\Application\chrome.exe"

в

"C:\\Application Data\Google\Chrome\Application\chrome.exe" --allow-running-insecure-content

И это, наконец, сработало для меня.

Другие вопросы по тегам