- ベストアンサー
Google AJAX Feed APIについて
よろしくお願いします。 Google AJAX Feed API で 外部のブログを複数取得しているのですが、 一覧を表示する際に、<div id="feed"></div>と記載するかと思うのですが、 これを2個使って別々の一覧を表示することは可能でしょうか? http://q.hatena.ne.jp/1285618603 こちらのページを参考にしてみたのですが、どうもうまくいきません。 どなたかご存知の方、参考のURLでも結構ですのでよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 >ご指摘いただきました部分を変更してみたのですが、2つのfeedが一緒になって表示されています どう変更したのか不明ですが、正常に動作しているのであれば、 ・変更した内容に意味がない(効果のある変更をしていない) ・表示用の要素に同じ要素を指定している あたりが、あやしいと思いますが? >中身はこことほとんど同じです。 ほとんどと言われてもどこが違うのかわかりませんので、そのサイトのスクリプトに限って言えば、 1)feedOutputは表示要素のidを変数で受け取るようになっていますが、呼び出し側が"feed"固定で呼び出しているので、結果的に表示する要素が固定されています。 2)entryArrayなどがグローバル変数になっていて、複数のフィードを読み込んでも蓄積されるようになっているようなので、ご質問のように表示を分けるのであれば、ローカルな変数として受け渡す必要がありそうです。 1)については、"feed"の部分を変数化して(#1での回答)、引数で受けるようにし、initialize側からURLとidをセットで渡すようにすればよろしいかと。ついでに、表示するリスト数も制御しているようなので、これもinitialize側から合わせて指定するようにすれば、#1での回答となります。 要は、「hogeURLの内容を10件hoge要素に表示」、「fugaURLの内容を20件fuga要素に表示」のように指定してあげるのが便利では? 2)は#1では予想していませんでしたが、表示を分けるのであればグローバルにしてしまうことによって弊害がでます。特に、そのサイトのコードはそのコメントにもあるように「//取得するフィードの追加」をするように作成してあるので、全部を読み込んでからまとめて出力するようになっています。 1)に挙げたような処理にするためには、1箇所のURLを読込むごとに出力するようにしないと・・・ また、このままだと当然ながら読込んだ内容が蓄積されてしまうため個別の内容になりません。これを解消するには、関係する変数をローカルにすることで、呼び出して表示が終わる毎にキャンセルされるようにしてあげればよろしいかと。
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
AJAX Feed API を使ったこtが無い上に、どのようなコードで実行しているのか不明なので、あれなんですが… 想像力をフル稼働して、(↓)のHello Worldようなコードで読み込んでいるのものとすれば、 http://code.google.com/intl/ja/apis/feed/v1/devguide.html#hiworld その中の var container = document.getElementById("feed"); の部分が、表示する要素のidを指定している部分なので、その「"feed"」や「表示するURLアドレス」や(もしやっているなら)「表示する数」といった個別に制御したい内容を変数にしておいて、それらを引数にして必要な回数呼び出すようにしてあげればよいのではないでしょうか? APIをざっと見ただけだし、試してもいないのでよくわかっていませんので、はずしていたらごめんなさい。
お礼
ありがとうございます!ご指摘いただきました部分を変更してみたのですが、2つのfeedが一緒になって表示されています・・・。 別々のリストとして表示したいのですが、どうもうまくいかない感じで・・・。 もう少し内容をまとめてから質問するべきなんでしょうけど、どのように書いたらいいかわからずおおざっぱな質問になってしまいました。すみません。 それぞれの変数を1つ目とかぶらないように別の変数(feed2など)にしてみたのですがやはりうまくいかず・・。 ありがとうございます。引き続き検証してみます。
補足
ちなみに参考サイトはこちらです。 http://d.hatena.ne.jp/kudakurage/20090728/1248781127 中身はこことほとんど同じです。
お礼
ご返信が遅くなりまして申し訳ありません。 2)のご指摘を修正したところ、無事、別々に表示されました! entryArrayがグローバルになっていたため、ページ内に2つのfeedは表示されていたのですが、別々に取得していたはずのfeedがごちゃまぜになっていました。 「全部を読み込んでからまとめて出力」の部分がよくわかっていなかったため、ご指摘の部分をよく見返してみると、その通りでした! entryArrayをentryArray2にしたら、個別の一覧として表示されました! わかりにくい説明の中で、的確なアドバイスをいただきまして誠にありがとうございました!