• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:google feed apiを使い分けたい)

Google Feed APIを使い分けたい

このQ&Aのポイント
  • Google Feed APIを使用して、複数のURLを同一ページ内で使い分けたい方法を教えてください。
  • 「<div id="feed"></div>」の部分をURLごとに変更し、Google Feed APIを使用して情報を表示したいです。
  • 既存のコードではうまく実行されないため、試しにIDを指定して実行してみたのですが、うまくいきませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
  • my--
  • ベストアンサー率89% (91/102)
回答No.2

>> No.1 補足 <script type="text/javascript" src="http://www.google.com/jsapi?key=KEY"></script> <script type="text/javascript"> google.load("feeds", "1"); // myGoogleFeed関数宣言 function myGoogleFeed(settings) {  var feed = new google.feeds.Feed(settings.url);  feed.setNumEntries(settings.entries);  feed.load(function () {   return settings.callback.apply(settings.context || settings, arguments);  });  return feed; } function initialize() {  // myGoogleFeed使用例  myGoogleFeed({   url: 'http...', // URL   entries: 3, // 件数   context: { id: 'feed1' }, // コールバック関数のthis値   callback: func // コールバック関数  });  myGoogleFeed({   url: 'http...',   entries: 4,   context: { id: 'feed2' },   callback: func  });  function func(result) {   if (!result.error) {    var container = document.getElementById(this.id);    // 処理   }  } } google.setOnLoadCallback(initialize); </script> <div id = "feed1"></div> <div id = "feed2"></div> 上記が基本的な記述(使い方)になります。 initialize関数内だけで利用するなら、myGoogleFeed関数宣言もinitialize関数の中に入れて構わないです。 要は google.load("feeds", "1"); function initialize() { var feed = new google.feeds.Feed("rss_url"); feed.setNumEntries(5); feed.load(function(result) { if (!result.error) { var container = document.getElementById("feed"); } }); } google.setOnLoadCallback(initialize); この上手く実行されるinitialize関数の中身をmyGoogleFeed関数に移しただけですから、initialize関数の中で実行すればいいです。

igniz
質問者

お礼

正常に動作させることができました。 すごく丁寧な回答ありがとうございました。 今後のプログラムに生かせそうです。

その他の回答 (1)

  • my--
  • ベストアンサー率89% (91/102)
回答No.1

function myGoogleFeed(settings) {  var feed = new google.feeds.Feed(settings.url);  feed.setNumEntries(settings.entries);  feed.load(function () {   return settings.callback.apply(settings.context || settings, arguments);  });  return feed; } // myGoogleFeed使用例 myGoogleFeed({  url: 'http...', // URL  entries: 3, // 件数  context: { id: 'feed1' }, // コールバック関数のthis値  callback: func // コールバック関数 }); myGoogleFeed({  url: 'http...',  entries: 4,  context: { id: 'feed2' },  callback: func }); function func(result) {  if (!result.error) {   var container = document.getElementById(this.id);  } } こんな感じで。 特に難しいことはやってないですけど、不明な点があれば補足下さい。

igniz
質問者

補足

何点かわからないところがあります。 まず google.load("feeds", "1"); google.setOnLoadCallback(myGoogleFeed); の記述ですが、これは function myGoogleFeed(settings) { の手前つまり google.load("feeds", "1"); google.setOnLoadCallback(myGoogleFeed); function myGoogleFeed(settings) { としておけばよろしいでしょうか? もうひとつ実際の使い方がよくわかりません。 <script type="text/javascript"> </script> の間に教えていただいた処理を記述し、表示したい箇所で <div id = "feed1"></div> <div id = "feed2"></div> とするとういうことでしょうか? しかし、上記方法は試してみましたが、うまくいきませんでした。

関連するQ&A