div-populating関数を使用して、自分のサイトにいくつかのフィードを実装しようとしています。以前は、ページ全体に同一のJavaScriptコードブロック(フィードごとに1つ)がありましたが、優れた(またはより優れた)コーダーになるために、反復コードを外部スクリプトファイルに貼り付けて、さまざまなパラメーターで実行することにしました。代わりは。
残念ながら、フィードは私の新しい実装でロードすることを拒否し、私はアイデアを使い果たしています。質問9662168のユーザーndpの興味深い提案に基づいてコールバック関数を構成しました。
したがって、外部スクリプトファイルには次の2つの関数があります(簡単にするためにマイナーコードの編集)。
function populateRSSFeed(divID) {
var targetDiv = document.getElementById(divID);
return function callback(result) {
if (!result.error) {
var container = document.getElementById(targetDiv);
var list = document.createElement('ul');
<snip: div-population code here>
container.appendChild(list);
}
else
alert('Error fetching feeds!');
}
}
function initializeRSSFeed(callback, targetFeed) {
google.load('feeds','1');
var feed = new google.feeds.Feed(targetFeed);
var numEntries = 3;
feed.setNumEntries(numEntries);
feed.load(callback);
}
これらの関数は、私のHTMLでは次のように呼び出されます。
<script>
var callback = populateRSSFeed('feed-list-wrapper-1');
initializeRSSFeed(callback, 'http://rss.cnn.com/rss/cnn_topstories.rss');
</script>
表示されるエラーメッセージから、フィードの読み込み段階で問題が発生していると思われますが、原因を特定できません。
Uncaught TypeError: Cannot read property 'Feed' of undefined
皆さんはどう思いますか?