複数のRSSを取得した項目を別々に表示したい

このQ&Aのポイント
  • Google AJAX Feed APIを使用して、複数のRSSフィードを個別に表示する方法について教えてください。
  • JavaScriptを使用して、複数のRSSフィードを取得し、それぞれを異なる場所に表示する方法を知りたいです。
  • 特定のIDを持つRSSフィードを指定して、別々の場所にそれぞれ表示する方法を教えてください。
回答を見る
  • ベストアンサー

複数のRSSを取得した項目を別々に表示したい。

Google AJAX Feed APIで、ホームページにRSSを表示する際、デフォルトでは、取得した複数のRSSを <div id="feed">...</div> に出力することができますが、 それらを、「私のブログ」のRSSを[feed]に「つれづれ日記」を[feed2]に個別に出力するにはどうすればいいのでしょうか? js内にあるfeedのIDを単純に書き換えても全体の表示する場所が変わるだけでした。 また、IDを変えた同じjsを設置したところ、片方がエラーになりました。 表示をどこでどう分岐すればいいのかわかりません。 下記のソースで、具体的には上のソースのどこにどういう風に記述するのかがわかりません。 いろいろ頑張ってはいるのですが、うまくいかず困ってます。 その辺のヒントをいただければありがたいのですが。 ソースは以下のとおりです。 <script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script> <script type="text/javascript" src="http://www.google.com/jsapi?key=........."></script> <script type="text/javascript"> <!--// google.load("feeds", "1"); var entryArray = new Array(); var entryNum = 0; function initialize() { feedAdd("http://feedblog.ameba.jp/私のブログ........../rss20.xml", 1); feedAdd("http://feedblog.ameba.jp/つれづれ日記........../rss20.xml", 2);//取得したサイトのRSSフィードを入力。足りない場合は適宜4,5,6....と増やす } function feedAdd(rssUrl, boolNum) { var feed = new google.feeds.Feed(rssUrl); feed.setNumEntries(2);//サイト1つあたりの取得するフィード数 feed.load(function(result) { if (!result.error) { for (var i = 0; i < result.feed.entries.length; i++) { entryArray[entryNum] = result.feed.entries[i]; var date = new Date(result.feed.entries[i].publishedDate); entryArray[entryNum].sortDate = ( date.getFullYear()*1000000 ) + ( (date.getMonth() + 1)*3600*32 ) + ( date.getDate()*3600 ) + ( date.getHours()*60 ) + date.getMinutes(); entryArray[entryNum].blogName = result.feed.title; entryNum+=1; } } if(boolNum==1){ feedOutput("feed", 10);//フィードの出力 } }); } function feedOutput(feedId, listNum){ var useFeed = ""; var useDate = ""; var container = document.getElementById(feedId); entryArray = asort(entryArray, "sortDate"); if(listNum==10){//出力するリスト数 listNum = entryNum; } for (var i = 0; i < listNum; i++) { var entry = entryArray[i]; var date = new Date(entry.publishedDate); var y = date.getFullYear(); if (y < 10) {y = "0" + y;} var m = date.getMonth() + 1; if (m < 10) {m = "0" + m;} var d = date.getDate(); if (d < 10) {d = "0" + d;} var h = date.getHours(); if (h < 10) {h = "0" + h;} var mn = date.getMinutes(); if (mn < 10) {mn = "0" + mn;} var s = date.getSeconds(); if (s < 10) {s = "0" + s;} if (entry.title.match(/.*PR:.*/mi) == null) { useDate = y + "年" + m + "月" + d + "日"; useFeed += '<div style="float:left;width:150px;margin:0px 0px 0px 5px">'+ y + "月" + m + "日" + d + " [" + h + ':' + mn + "]" +'</div><div style="float: left;width:220px;height:18px;overflow:hidden;"><a href="' + entry.link + '" target="_blank" title="' + entry.title + '【' + entry.blogName + '】">' + entry.title + '</a> <img src="http://b.hatena.ne.jp/entry/image/large/' + entry.link + '"></div><div style="float:left;width:100px;height:13px;overflow:hidden;max-width:8em;padding:1px 0px 0px 0px;margin:1px 0px 0px 0px">' +"(投稿) "+ entry.blogName + '</div>...<br><hr size="1"/>'; 以下BODY内 「私の日記」の最新情報 <div id="feed"> </div> 「つれづれ日記」の最新情報 <div id="feed2"> </div> 以上、よろしくお願いします。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

スクリプトが途中で切れているので、いい加減な想像でしかありませんが… スクリプトの if(boolNum==1){ feedOutput("feed", 10);//フィードの出力 } の部分を feedOutput("feed"+boolNum, 10); にして、 HTMLの <div id="feed"> </div> を <div id="feed1"> </div> にしてみるとかでは? boolNumのもともとの意味は違うはずと思いますけれど、とりあえずの処置として…

itforce
質問者

お礼

回答ありがとうございました。 結局、私の力の無さか、JSでの実現はあきらめました。 代わりに、phpを複数設置することにしました。 <?php //URL設定 $rssdata = simplexml_load_file("http://***"); // 件数設定 $num_of_data = 3; //初期化 $outdata = ""; for ($i=0; $i<$num_of_data; $i++){ $myEntry = $rssdata->channel->item[$i]; $rssDate = $myEntry->pubDate; date_default_timezone_set('Asia/Tokyo'); $myDateGNU = strtotime($rssDate); $myDate = date('Y/m/d',$myDateGNU); $myTitle = $myEntry->title; //タイトル取得 $myLink = $myEntry->link; //リンクURL取得 //出力内容(CSSOK) $outdata .= '<p class=""><div style="float:left;width:80px;margin:0px 0px 0px 5px;font-size:12px">'.$myDate.'</div><a href="' . $myLink . '">' . $myTitle . '</a></p>'; } echo $outdata; //全部出力する ?> こんな感じで。。。。 ご回答には感謝しております。ありがとうございました。

関連するQ&A

  • 複数のRSSにそれぞれClass名を追加したい.

    Google AJAX Feed APIでホームページに複数のRSSを新しい順に入れ子で表示しているのですが、各RSSにclass名を追加したいです。 例) twitter <li class="twitter"></li> facebook <li class="facebook"></li> 自分なりに試行錯誤してみましたが、うまく行きませんでした。 下記にコードを書いております。(合ってるか不安です) よろしくお願いします。 後、希望の機能で ●読み込んだ順にフェードインで表示をしたい ●非同期 もよろしければお願いします。 ----------------------------------------------- google.load("feeds", "1"); var entryArray = new Array(); var entryNum = 0; function initialize() { /* url */ feedAdd("URL_facebook", 2); feedAdd("URL_twitter", 1); } function feedAdd(rssUrl, boolNum) { var feed = new google.feeds.Feed(rssUrl); feed.setNumEntries(20); feed.load(function(result) { if (!result.error) { for (var i = 0; i < result.feed.entries.length; i++) { entryArray.push(result.feed.entries[i]); var date = new Date(result.feed.entries[i].publishedDate); entryArray[entryNum].sortDate = ( date.getFullYear()*10000 ) + ( (date.getMonth() + 1)*100 ) + date.getDate(); entryArray[entryNum].blogName = result.feed.title; entryNum+=1; } }else{ alert(result.error.code + ":" + result.error.message); } if(boolNum==1){ feedOutput("feed", 100); } }); } function feedOutput(feedId, listNum){ var container = document.getElementById('rss'); entryArray = asort(entryArray, "sortDate"); if(listNum > entryNum){ listNum = entryNum; } for (var i = 0; i < listNum; i++) { var entry = entryArray[i]; var date = new Date(entry.publishedDate); var eTitle = entry.title; var eCont = entry.contentSnippet.substring(0, 100); var eLink = entry.link; var eimg = ""; var wrap = document.createElement("li"); var imgCheck = entry.content.match(/(src="http:){1}[\S_-]+((\.jpg)|(\.JPG))"/); if(imgCheck){ eimg += '<img ' + imgCheck[0] + '\>'; } wrap.innerHTML = eimg + '<span>' + date.getFullYear() + '年' + (date.getMonth() + 1 ) + '月' + date.getDate() + '日<\/span><br\>' + eCont + '...<br\><a href="' + eLink + '" target="_blank">投稿へ移動<\/a>'; container.appendChild(wrap); } } function asort(myArray, key){ return myArray.sort ( function (b1, b2) { return b1[key] > b2[key] ? -1 : 1; } ); } google.setOnLoadCallback(initialize);

  • ジャバスクリプトで文字列を変換したい!

    Google AJAX Feed APIで、ホームページにRSSを表示する際、出力されるブログ名を別の名前に置換したいです。 if (entry.title.match(/.*PR:.*/mi) == null) とPRのついているタイトルを消去するように、 if文と、replaceなんかでいけそうな気がするのですが、記述の方法がわかりません。 置換例として。。。 もし、ブログ名(entry.blogName)が「私のブログ」ならば、「つれずれ日記」に置換する。 といった具合です。 どうぞ宜しくお願いいたします。 ソースは以下のとおりです。 <script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script> <script type="text/javascript" src="http://www.google.com/jsapi?key=........."></script> <script type="text/javascript"> <!--// google.load("feeds", "1"); var entryArray = new Array(); var entryNum = 0; function initialize() { feedAdd("http://feedblog.ameba.jp/........../rss20.xml", 1);//取得したサイトのRSSフィードを入力。足りない場合は適宜4,5,6....と増やす } function feedAdd(rssUrl, boolNum) { var feed = new google.feeds.Feed(rssUrl); feed.setNumEntries(2);//サイト1つあたりの取得するフィード数 feed.load(function(result) { if (!result.error) { for (var i = 0; i < result.feed.entries.length; i++) { entryArray[entryNum] = result.feed.entries[i]; var date = new Date(result.feed.entries[i].publishedDate); entryArray[entryNum].sortDate = ( date.getFullYear()*1000000 ) + ( (date.getMonth() + 1)*3600*32 ) + ( date.getDate()*3600 ) + ( date.getHours()*60 ) + date.getMinutes(); entryArray[entryNum].blogName = result.feed.title; entryNum+=1; } } if(boolNum==1){ feedOutput("feed", 10);//フィードの出力 } }); } function feedOutput(feedId, listNum){ var useFeed = ""; var useDate = ""; var container = document.getElementById(feedId); entryArray = asort(entryArray, "sortDate"); if(listNum==10){//出力するリスト数 listNum = entryNum; } for (var i = 0; i < listNum; i++) { var entry = entryArray[i]; var date = new Date(entry.publishedDate); var y = date.getFullYear(); if (y < 10) {y = "0" + y;} var m = date.getMonth() + 1; if (m < 10) {m = "0" + m;} var d = date.getDate(); if (d < 10) {d = "0" + d;} var h = date.getHours(); if (h < 10) {h = "0" + h;} var mn = date.getMinutes(); if (mn < 10) {mn = "0" + mn;} var s = date.getSeconds(); if (s < 10) {s = "0" + s;} if (entry.title.match(/.*PR:.*/mi) == null) { useDate = y + "年" + m + "月" + d + "日"; useFeed += '<div style="float:left;width:150px;margin:0px 0px 0px 5px">'+ y + "月" + m + "日" + d + " [" + h + ':' + mn + "]" +'</div><div style="float: left;width:220px;height:18px;overflow:hidden;"><a href="' + entry.link + '" target="_blank" title="' + entry.title + '【' + entry.blogName + '】">' + entry.title + '</a> <img src="http://b.hatena.ne.jp/entry/image/large/' + entry.link + '"></div><div style="float:left;width:100px;height:13px;overflow:hidden;max-width:8em;padding:1px 0px 0px 0px;margin:1px 0px 0px 0px">' +"(投稿) "+ entry.blogName + '</div>...<br><hr size="1"/>'; }

  • RSSリーダー日時テレコ

    開設したサイトに下記のサイトを参考にして別サイトのRSSフィードを取得&表示させています。 http://neta-times.net/entries/953/ こちらのサイトにもお世話になり少しずつ改良しました。 日付順に昇順で表示させているのですが、年をまたいで2011年のフィードと2012年のフィードが下記のようにテレコになってしまいました。 2011/12/15 2012/1/5 2012/1/4 ソースは <script type="text/javascript" src="http://www.google.com/jsapi?key=ABQIAAAAgYbHtK3iN8_bzOiM-ozq0BTX_koMG-j7dTONG-a0MlukASCt8RQpx0fmfui6hPPS_oIx7hon-9_HCA"></script> <script type="text/javascript"> <!--// google.load("feeds", "1"); var entryArray = new Array(); var entryNum = 0; function initialize() { feedAdd("RSSのURL", 1,'ブログタイトル'); } function feedAdd(rssUrl, boolNum,title) { var feed = new google.feeds.Feed(rssUrl); feed.setNumEntries(5);//サイト1つあたりの取得するフィード数 feed.load(function(result) { if (!result.error) { for (var i = 0; i < result.feed.entries.length; i++) { entryArray[entryNum] = result.feed.entries[i]; var date = new Date(result.feed.entries[i].publishedDate); entryArray[entryNum].sortDate = ( date.getFullYear()*1000000 ) + ( (date.getMonth() + 1)*3600*32 ) + ( date.getDate()*3600 ) + ( date.getHours()*60 ) + date.getMinutes(); entryArray[entryNum].blogName = result.feed.title; entryArray[entryNum].blogName = title; entryNum+=1; } } if(boolNum==1){ feedOutput("feed", 100);//フィードの出力 } }); } function feedOutput(feedId, listNum){ var useFeed = ""; var useDate = ""; var container = document.getElementById(feedId); var refDate = new Date(); refDate = new Date(+refDate - (7*24*60*60*1000 + refDate%86400000 - refDate.getTimezoneOffset()*60000)); var newImage = '<img src="./img/new.gif" alt="new">'; entryArray = asort(entryArray, "sortDate"); if(listNum==100){//出力するリスト数 listNum = entryNum; } for (var i = 0; i < listNum; i++) { var entry = entryArray[i]; var date = new Date(entry.publishedDate); var y = date.getFullYear(); if (y < 10) {y = "0" + y;} var m = date.getMonth() + 1; if (m < 10) {m = "0" + m;} var d = date.getDate(); if (d < 10) {d = "0" + d;} useDate = y + "年" + m + "月" + d + "日"; youbi = date.getDay(); day = new Array("日","月","火","水","木","金","土"); useFeed += '<div style="float:left;width:115px;">'; useFeed += (date>refDate)?newImage:""; //←new画像の表示を追加 useFeed += "&nbsp;"+ y + "/" + m + "/" + d + "(" + day[youbi] + ")"; useFeed += '</div><div style="float: left;width:400px;height:18px;overflow:hidden;"><a href="' + entry.link + '" target="_blank" title="' + entry.title + '【' + entry.blogName + '】">' + entry.title + '/' + entry.blogName +'</a></div>'; } container.innerHTML = '<div>' + useFeed + '</div>'; } function asort(myArray, key){ return myArray.sort ( function (b1, b2) { return b1[key] > b2[key] ? -1 : 1; } ); } google.setOnLoadCallback(initialize); //--> </script><font size="2" face="Times new Roman"><div style="height:110px; width:600px; overflow:auto;" id="feed">Loading...</div> どのようにすればこのテレコが修正できるでしょうか? ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

  • FeedApi 不明点

    Google FeedAPiを使ったjavascriptのプログラミングで、どうしてもバグが取り除けなくて 困っています。 具体的には下記のコードです。 ------------------------------------------- <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("feeds", "1"); var entryArray = new Array(); var entryNum = 0; // alert(entryArray.length); function initialize() { feedAdd("xmlURL", 1); feedAdd("xmlURL", 1); feedAdd("xmlURL", 1); feedAdd("xmlURL", 1); feedAdd("xmlURL", 1); } function feedAdd(rssUrl, boolNum) { var feed = new google.feeds.Feed(rssUrl);//フィードの取得 feed.setNumEntries(10);//ブログ1つあたりの取得するフィード数 feed.load(function(result) { if (!result.error) { for (var i = 0; i < result.feed.entries.length; i++) { entryArray.push(result.feed.entries[i]); var date = new Date(result.feed.entries[i].publishedDate); var title = result.feed.title; //ソート用(日付)を連想配列に代入 entryArray[entryNum].sortDate = ( date.getFullYear()*10000 ) + ( (date.getMonth() + 1)*100 ) + date.getDate(); if (result.feed.title.match(/^PR:/)){ alert("") }else{ entryArray[entryNum].blogName = result.feed.title;//ブログ名を連想配列に代入 entryNum+=1; } } } if(boolNum==1){ feedOutput("feed", 15);//フィードの出力 } }); } //フィードの出力(feedId:出力するオブジェクトのID , listNum:出力するリスト数。「0」の場合全て) function feedOutput(feedId, listNum){ var useFeed = ""; var container = document.getElementById(feedId);//表示部分を選択 entryArray = asort(entryArray, "sortDate");//日付でソート if(listNum==0){ listNum = entryNum; } for (var i = 0; i < listNum; i++) { var entry = entryArray[i]; var date = new Date(entry.publishedDate);//日付の表示変更 useFeed += '<li>' + date.getFullYear() + '年' + (date.getMonth() + 1 ) + '月' + date.getDate() + '日 <a href="' + entry.link + '" target="_blank">' + entry.title + '</a>(' + entry.blogName + ')</li>';//HTMLで書き出し } container.innerHTML = '<ul>' + useFeed + '</ul>'; } function asort(myArray, key){ //return myArray.sort ( function (b1, b2) { return b1[key] > b2[key] ? 1 : -1; } );//昇順 return myArray.sort ( function (b1, b2) { return b1[key] > b2[key] ? -1 : 1; } );//降順 } google.setOnLoadCallback(initialize); </script> ------------------------------------------- amebloからPR記事が読み込まれるのを防ぐため、 正規表現にて取り除く処理を入れたいのですが、どのように対応すればいいのかわからず。。 どなたか、宜しくお願いします。

  • フィードの取得&表示方法について

    http://neta-times.net/entries/953/ 現在HPを開設しているのですが、そこで上記のサイトを参考にして書きのようにコードを記述してRSSフィードを取得&表示しています。 <script type="text/javascript"> <!--// google.load("feeds", "1"); var entryArray = new Array(); var entryNum = 0; function initialize() { feedAdd("RSSフィードURL", 1); } function feedAdd(rssUrl, boolNum) { var feed = new google.feeds.Feed(rssUrl); feed.setNumEntries(5);//サイト1つあたりの取得するフィード数 feed.load(function(result) { if (!result.error) { for (var i = 0; i < result.feed.entries.length; i++) { entryArray[entryNum] = result.feed.entries[i]; var date = new Date(result.feed.entries[i].publishedDate); entryArray[entryNum].sortDate = ( date.getFullYear()*1000000 ) + ( (date.getMonth() + 1)*3600*32 ) + ( date.getDate()*3600 ) + ( date.getHours()*60 ) + date.getMinutes(); entryArray[entryNum].blogName = result.feed.title; entryNum+=1; } } if(boolNum==1){ feedOutput("feed", 100);//フィードの出力 } }); } function feedOutput(feedId, listNum){ var useFeed = ""; var useDate = ""; var container = document.getElementById(feedId); var refDate = new Date(); refDate = new Date(+refDate - (7*24*60*60*1000 + refDate%86400000 - refDate.getTimezoneOffset()*60000)); var newImage = '<img src="./img/new.gif" alt="new">'; entryArray = asort(entryArray, "sortDate"); if(listNum==100){//出力するリスト数 listNum = entryNum; } for (var i = 0; i < listNum; i++) { var entry = entryArray[i]; var date = new Date(entry.publishedDate); var y = date.getFullYear(); if (y < 10) {y = "0" + y;} var m = date.getMonth() + 1; if (m < 10) {m = "0" + m;} var d = date.getDate(); if (d < 10) {d = "0" + d;} useDate = y + "年" + m + "月" + d + "日"; youbi = date.getDay(); day = new Array("日","月","火","水","木","金","土"); useFeed += '<div style="float:left;width:115px;">'; useFeed += (date>refDate)?newImage:""; //←new画像の表示を追加 useFeed += "&nbsp;"+ y + "/" + m + "/" + d + "(" + day[youbi] + ")"; useFeed += '</div><div style="float: left;width:400px;height:18px;overflow:hidden;"><a href="' + entry.link + '" target="_blank" title="' + entry.title + '【' + entry.blogName + '】">' + entry.title + '/' + entry.blogName +'</a></div>'; } container.innerHTML = '<div>' + useFeed + '</div>'; } function asort(myArray, key){ return myArray.sort ( function (b1, b2) { return b1[key] > b2[key] ? -1 : 1; } ); } google.setOnLoadCallback(initialize); //--> </script><font size="2" face="Times new Roman"> <div style="height:90px; width:600px; overflow:auto;" id="feed">Loading...</div> 上記のコードで問題なくフィードを表示できるのですが、一点修正したい箇所があります。 『entry.blogName』の部分なのですが、ここにはブログのタイトルなどを取得して表示されます。 ブログのタイトルがそのまま(芸能人の名前など)だったらいいのですが、稀にまったく関係ないタイトルがつけられていてそれだけだと誰のブログなのか閲覧者は分からなくなります。 それで受信するタイトルを自身の指定したテキストに書き換えたいのですが、そんな事はできるのでしょうか? 取得するブログのタイトル(entry.blogName)が○○だけど実際に表示する時には△△と表示させるような。 PHPは初心者でまったく分かりません。 詳しい方いらっしゃいましたらご教示ください。 何卒よろしくお願いします。

    • 締切済み
    • PHP
  • javascriptで出力する文字列を置換したい。

    Google AJAX Feed APIで、ホームページにRSSを表示する際、出力されるブログ名を別の名前に置換したいです。 if (entry.title.match(/.*PR:.*/mi) == null) とPRのついているタイトルを消去するように、 if文と、replaceなんかでいけそうな気がするのですが、記述の方法がわかりません。 置換例として。。。 もし、ブログ名(entry.blogName)が「私のブログ」ならば、「つれずれ日記」に置換する。 といった具合です。 どうぞ宜しくお願いいたします。 とりあえず、文字列の置換えに関してであれば、下記のサイトを見ると、replaceメソッドで可能でな感じなのですが、 http://www.syboos.jp/webjs/doc/string-replace-and-replaceall.html http://yakinikunotare.boo.jp/orebase/index.php?Javascript%2FString.replace%A5%E1%A5%BD%A5%C3%A5%C9 下記のソースで、具体的には上のソースのどこにどういう風に記述するのかがわかりません。 いろいろ頑張ってはいるのですが、うまくいかず困ってます。 その辺のヒントをいただければありがたいのですが。 ソースは以下のとおりです。 <script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script> <script type="text/javascript" src="http://www.google.com/jsapi?key=........."></script> <script type="text/javascript"> <!--// google.load("feeds", "1"); var entryArray = new Array(); var entryNum = 0; function initialize() { feedAdd("http://feedblog.ameba.jp/........../rss20.xml", 1);//取得したサイトのRSSフィードを入力。足りない場合は適宜4,5,6....と増やす } function feedAdd(rssUrl, boolNum) { var feed = new google.feeds.Feed(rssUrl); feed.setNumEntries(2);//サイト1つあたりの取得するフィード数 feed.load(function(result) { if (!result.error) { for (var i = 0; i < result.feed.entries.length; i++) { entryArray[entryNum] = result.feed.entries[i]; var date = new Date(result.feed.entries[i].publishedDate); entryArray[entryNum].sortDate = ( date.getFullYear()*1000000 ) + ( (date.getMonth() + 1)*3600*32 ) + ( date.getDate()*3600 ) + ( date.getHours()*60 ) + date.getMinutes(); entryArray[entryNum].blogName = result.feed.title; entryNum+=1; } } if(boolNum==1){ feedOutput("feed", 10);//フィードの出力 } }); } function feedOutput(feedId, listNum){ var useFeed = ""; var useDate = ""; var container = document.getElementById(feedId); entryArray = asort(entryArray, "sortDate"); if(listNum==10){//出力するリスト数 listNum = entryNum; } for (var i = 0; i < listNum; i++) { var entry = entryArray[i]; var date = new Date(entry.publishedDate); var y = date.getFullYear(); if (y < 10) {y = "0" + y;} var m = date.getMonth() + 1; if (m < 10) {m = "0" + m;} var d = date.getDate(); if (d < 10) {d = "0" + d;} var h = date.getHours(); if (h < 10) {h = "0" + h;} var mn = date.getMinutes(); if (mn < 10) {mn = "0" + mn;} var s = date.getSeconds(); if (s < 10) {s = "0" + s;} if (entry.title.match(/.*PR:.*/mi) == null) { useDate = y + "年" + m + "月" + d + "日"; useFeed += '<div style="float:left;width:150px;margin:0px 0px 0px 5px">'+ y + "月" + m + "日" + d + " [" + h + ':' + mn + "]" +'</div><div style="float: left;width:220px;height:18px;overflow:hidden;"><a href="' + entry.link + '" target="_blank" title="' + entry.title + '【' + entry.blogName + '】">' + entry.title + '</a> <img src="http://b.hatena.ne.jp/entry/image/large/' + entry.link + '"></div><div style="float:left;width:100px;height:13px;overflow:hidden;max-width:8em;padding:1px 0px 0px 0px;margin:1px 0px 0px 0px">' +"(投稿) "+ entry.blogName + '</div>...<br><hr size="1"/>';

  • Scriptを読み込み中の表示について

    HTML <script language="JavaScript" type="text/javascript" src="AAA.js"></script> 外部JS <!-- google.load("feeds", "1"); function initialize() { var feed = new google.feeds.Feed("RSSURL"); feed.setNumEntries(5); feed.load(function(result) { if (!result.error) { var container = document.getElementById("mini_feed"); for (var i = 0; i < result.feed.entries.length; i++) { var entry = result.feed.entries[i]; var div = document.createElement("div"); var entry = result.feed.entries[i]; var dd = new Date(entry.publishedDate); // now var yearNum = dd.getYear(); if (yearNum < 2000) yearNum += 1900; var date = yearNum + "年"+(dd.getMonth()+1)+"月"+dd.getDate()+"日"; container.innerHTML += "<div>【"+"<b>" + date+"</b>" +"】<br /><a href='" + entry.link + "'>" + entry.title + "</a></div>"; } } }); } google.setOnLoadCallback(initialize); //--> を設置し、RSSをスクリプトで表示しています。 2秒くらい読込みが遅いので、その部分が、一時空白状態のままになります。 そこで、読み込み中に読込みしていますというぐるぐる回る画像を表示したいのですが、どのように記述すれば宜しいのでしょうか?

  • Google AJAX Feed APIで、ホームページにアメブロRS

    Google AJAX Feed APIで、ホームページにアメブロRSSを表示する際、「PR」広告を排除したいです。 現在のソースは以下の通りです。 ------------------------ <script type="text/javascript" src="http://www.google.com/jsapi?key=・・・・・・"></script> <script type="text/javascript"> google.load("feeds", "1"); function initialize() { var feed = new google.feeds.Feed("http://feedblog.ameba.jp/rss・・・・・"); feed.setNumEntries(5); feed.load(function(result) { if (!result.error) { var container = document.getElementById("feed"); for (var i = 0; i < result.feed.entries.length; i++) { var entry = result.feed.entries[i]; var dd = new Date(entry.publishedDate); // now var yearNum = dd.getYear(); if (yearNum < 2000) yearNum += 1900; var m = dd.getMonth() + 1; if (m < 10) {m = "0" + m;} var d = dd.getDate(); if (d < 10) {d = "0" + d;} var date = yearNum + "." + m + "." + d + " "; container.innerHTML += "<p>" + date +" <a href='" + entry.link + "' target='_blank'>" + entry.title + "</a></p>"; } } }); } google.setOnLoadCallback(initialize); </script> (ボディー内) <p><div id="feed"></div></p> ------------------------ どこをどのようにすればいいのでしょうか? どうぞ宜しくお願いいたします。

  • RSSで取得したURLに文字列を追加と配置?

    現在googleのAPIを使いRSSからURLと画像を取得しています。 それで質問なんですが、その取得した(それぞれの)URL末尾に指定した同一の英数字を付加と、 表示する画像のレイアウト(現在は縦一列表示)を4×4とかにしたいとですがうまく出来ません>< 複数のURLだと、どの段階で??どう振り当てて組み込んだら良いのか?? レイアウトもCSSで試みましたが一括で処理されるので途中で区切っての配置が出来ず;; 複数の画像だとどうやって振り当てていくのかが判りません>< 初心者で申し訳ありませんがよろしく願いします。<m(__)m> <script type="text/javascript" src="googleのapiキー"></script> <script type="text/javascript"> google.load("feeds", "1"); function initialize() { var feed = new google.feeds.Feed("RSSのURL");   feed.setNumEntries(16); feed.load(function(result) { if (!result.error)   { var container = document.getElementById("feed"); for (var i = 0; i < result.feed.entries.length; i++) {var entry = result.feed.entries[i] ; var gazo = entry.content.match("<img.*jpg.*?>") if(gazo != null){container.innerHTML += "<p><a href='" + entry.link + "'>" + gazo +"</a></p>" } var div = document.createElement("div"); container.appendChild(div); } } }); } google.setOnLoadCallback(initialize); </script> <body onload="OnLoad()"> <div id="feed" ></div>

  • jacascriptでサイトにRSSフィードを表示した際の文字制限につ

    jacascriptでサイトにRSSフィードを表示した際の文字制限について 以下jacascriptでサイトにRSSフィードを表示してます。 google.load("feeds", "1"); function initialize() { var feed = new google.feeds.Feed("http://xxxxxxxxxxxxx.rdf"); feed.setNumEntries(5); feed.load(function(result) { if (!result.error) { var container = document.getElementById("feed"); for (var i = 0; i < result.feed.entries.length; i++) { var entry = result.feed.entries[i]; var dd = new Date(entry.publishedDate); // now var yearNum = dd.getYear(); if (yearNum < 2000) yearNum += 1900; var m = dd.getMonth() + 1; if (m < 10) {m = "0" + m;} var d = dd.getDate(); if (d < 10) {d = "0" + d;} var date = yearNum + "-" + m + "-" + d + " "; container.innerHTML += "<p>" + "<span>" + date + "</span>"+ "&nbsp;<a href='" + entry.link + "' target='_blank'>" + entry.title.substr(0,15) + "</a></p>"; } } }); } google.setOnLoadCallback(initialize); 表示する文字数をsubstr(0,15)で制限しているのですが、15文字以上はタイトルの右に「…」を付加させたいのですが、どのようにすればよいのでしょうか?

専門家に質問してみよう