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
И это, наконец, сработало для меня.