No.5ベストアンサー
- 回答日時:
全角空白インデントし忘れちゃったので再度(見やすくした同じものです)
<body>
<div>
<button onclick="blogchks();">Check</button>
<dl id="result"></dl>
</div>
<script type="text/javascript">
<!--
var result=document.getElementById("result");
//↓にRSS Feed URLを複数セット
var blogUrls=["http://feeds.fc2.com/fc2/xml?host=yclub.blog12",
"RSS Feed URL 2",
"RSS Feed URL 3"
]
var entry_stack=[];
function blogchks(){
entry_stack.length=0;
for(var i=0;i<blogUrls.length;i++)
blogchk(blogUrls[i]);
}
function blogchk(feed_Url){
var api_Url='http://ajax.googleapis.com/ajax/services/feed/lo …
var apiScript=document.createElement("script");
apiScript.setAttribute("id","_handleJson");
apiScript.setAttribute("type","text/javascript");
apiScript.setAttribute("charset","UTF-8");
apiScript.setAttribute("src",api_Url + encodeURIComponent(feed_Url));
document.getElementsByTagName("head")[0].appendChild(apiScript);
}
function _handleJson(json){
if ( json.responseStatus != 200 ) return;
while(result.hasChildNodes())
result.removeChild(result.firstChild);
entry_stack.push(json.responseData.feed.entries);
for(var i=0;i<entry_stack.length;i++){
result_write(entry_stack[i]);
}
document.getElementsByTagName("head")[0].removeChild(document.getElementById("_handleJson"));
}
function result_write(entries){
var today,pdate,dt,dd,a;
today=new Date();
for(var i=0;i<entries.length;i++){
pdate=new Date(entries[i].publishedDate);
if((today.getTime()-pdate.getTime())/24/3600/1000 > 3){
dt=document.createElement("dt");
dt.appendChild(
document.createTextNode("New! ("+pdate.toLocaleString()+")")
);
result.appendChild(dt);
dd=document.createElement("dd");
a=document.createElement("a");
a.href=entries[i].link;
a.appendChild(
document.createTextNode(entries[i].title+"(by:"+entries[i].author+")")
);
dd.appendChild(a);
result.appendChild(dd);
}
}
}
// -->
</script>
</body>
</html>
この回答への補足
サンプルまで教えていただきましてありがとうございます!
試してみたところ2009年12月2日の記事でもNEWが表示されてしまいます^^;
下記のようなhtmlの場合resultにRSSの取得結果を最新のものから5件づつ
取得し表示させかつ、3日以内の記事があればNEWを付加させたいです。
また、newmarkは複数のブログのうち1つでも3日以内の記事があれば表示させ
該当する記事がない場合には表示させないようにしたいと思っています。
<body onload="blogchks();">
<div id="newmark">3日以内の記事がありました</div>
<dl id="result"></dl>
</body>
No.6
- 回答日時:
<試してみたところ2009年12月2日の記事でもNEWが表示されてしまいます^^;>
はいそうです。サンプルですもん。
適当なブログがなかったので、あえて3日以上を出してます。
if((today.getTime()-pdate.getTime())/24/3600/1000 > 3){
この部分ですね。3日以内なら < 3 に直します。
<5件づつ取得し表示させかつ、3日以内の記事があればNEWを付加させたいです。
また、newmarkは複数のブログのうち1つでも3日以内の記事があれば表示させ
該当する記事がない場合には表示させない>
については、最初の質問にはなかった追加要望ですね。
RSSを取得する部分は、前のサンプルが参考になりますので、
function result_write(entries){}
の中で工夫してみて下さい。
No.4
- 回答日時:
おっと、複数やるんでした。
これです↓(無駄な処理があるけど)<body>
<div>
<button onclick="blogchks();">Check</button>
<dl id="result"></dl>
</div>
<script type="text/javascript">
<!--
var result=document.getElementById("result");
//↓にRSS Feed URLを複数セット
var blogUrls=["http://feeds.fc2.com/fc2/xml?host=yclub.blog12",
"RSS Feed URL 2",
"RSS Feed URL 3"
]
var entry_stack=[];
function blogchks(){
entry_stack.length=0;
for(var i=0;i<blogUrls.length;i++)
blogchk(blogUrls[i]);
}
function blogchk(feed_Url){
var api_Url='http://ajax.googleapis.com/ajax/services/feed/lo …
var apiScript=document.createElement("script");
apiScript.setAttribute("id","_handleJson");
apiScript.setAttribute("type","text/javascript");
apiScript.setAttribute("charset","UTF-8");
apiScript.setAttribute("src",api_Url + encodeURIComponent(feed_Url));
document.getElementsByTagName("head")[0].appendChild(apiScript);
}
function _handleJson(json){
if ( json.responseStatus != 200 ) return;
while(result.hasChildNodes())
result.removeChild(result.firstChild);
entry_stack.push(json.responseData.feed.entries);
for(var i=0;i<entry_stack.length;i++){
result_write(entry_stack[i]);
}
document.getElementsByTagName("head")[0].removeChild(document.getElementById("_handleJson"));
}
function result_write(entries){
var today,pdate,dt,dd,a;
today=new Date();
for(var i=0;i<entries.length;i++){
pdate=new Date(entries[i].publishedDate);
if((today.getTime()-pdate.getTime())/24/3600/1000 < 3){
dt=document.createElement("dt");
dt.appendChild(
document.createTextNode("New! ("+pdate.toLocaleString()+")")
);
result.appendChild(dt);
dd=document.createElement("dd");
a=document.createElement("a");
a.href=entries[i].link;
a.appendChild(
document.createTextNode(entries[i].title+"(by:"+entries[i].author+")")
);
dd.appendChild(a);
result.appendChild(dd);
}
}
}
// -->
</script>
</body>
</html>
No.3
- 回答日時:
サンプルです。
全角空白は半角空白にしてね
<body>
<div>
<button onclick="blogchks();">Check</button>
<dl id="result"></dl>
</div>
<script type="text/javascript">
<!--
var result=document.getElementById("result");
//↓にRSS Feed URLを複数セット
var blogUrls=["http://feeds.fc2.com/fc2/xml?host=yclub.blog12",
"RSS Feed URL 2",
"RSS Feed URL 3"
]
function blogchks(){
for(var i=0;i<blogUrls.length;i++)
blogchk(blogUrls[i]);
}
function blogchk(feed_Url){
var api_Url='http://ajax.googleapis.com/ajax/services/feed/lo …
var apiScript=document.createElement("script");
apiScript.setAttribute("id","_handleJson");
apiScript.setAttribute("type","text/javascript");
apiScript.setAttribute("charset","UTF-8");
apiScript.setAttribute("src",api_Url + encodeURIComponent(feed_Url));
document.getElementsByTagName("head")[0].appendChild(apiScript);
}
function _handleJson(json){
if ( json.responseStatus != 200 ) return;
while(result.hasChildNodes())
result.removeChild(result.firstChild);
for(var i=0;i<blogUrls.length;i++){
result_write(json.responseData.feed.entries);
}
document.getElementsByTagName("head")[0].removeChild(document.getElementById("_handleJson"));
}
function result_write(entries){
var today,pdate,dt,dd,a;
today=new Date();
for(var i=0;i<entries.length;i++){
pdate=new Date(entries[i].publishedDate);
if((today.getTime()-pdate.getTime())/24/3600/1000 > 3){
dt=document.createElement("dt");
dt.appendChild(
document.createTextNode("New! ("+pdate.toLocaleString()+")")
);
result.appendChild(dt);
dd=document.createElement("dd");
a=document.createElement("a");
a.href=entries[i].link;
a.appendChild(
document.createTextNode(entries[i].title+"(by:"+entries[i].author+")")
);
dd.appendChild(a);
result.appendChild(dd);
}
}
}
// -->
</script>
</body>
No.2
- 回答日時:
少しjavascriptがかけるなら、「Google AJAX Feed API」
http://code.google.com/intl/ja/apis/ajaxfeeds/do …
というサービスを使ってみたらいかがでしょう。
たいがいのRSSのフィード形式に対応していて、取得結果をJSON形式又はXMLで
返してくれます。(もちろんクロスドメインでも)
※Google嫌いの人のために
Yahooにも同様のAPIサービスがあります。
「Yahooブログ検索」です。
http://developer.yahoo.co.jp/webapi/search/blogs …
こっちも簡単です。
使う前にJSON、JSONP、XmlHttpRequestとかの基本用語のおさらいを
しておきましょう。
サンプルご入用?
No.1
- 回答日時:
とりあえず、この辺りを参照してみてください。
XMLHttpRequest Level 2 と wedata バックアップ - 0xFF
http://d.hatena.ne.jp/os0x/20090610/1244618814
JavaScript/クロスドメイン制限の解除 - WebTips
http://webtips.open-log.net/index.php?JavaScript …
XMLHttpRequest Level 2
http://www.w3.org/TR/XMLHttpRequest2/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<tr>指定した表の行要素をボ...
-
初心者です。gulpでコンパイル...
-
セレクトを全て選択されていな...
-
jQueryで同じクラス名のものを...
-
前回の質問の続き function mov...
-
前回の質問の続き function mou...
-
このプログラムに王様の逃げ道...
-
読み込んだQRコードをフォーム...
-
スマホ上で、左右スワイプで次...
-
その要素がjQueryでremove()済...
-
食材の期限を管理するためにGAS...
-
このプログラムに、王手をかけ...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
-
プログラミング 学習
-
HTMLでサブフレームから親のス...
-
ジャバスクリプトについて。
-
プログラムについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
前回の質問の続き function mov...
-
このプログラムに、王手をかけ...
-
このプログラムに王様の逃げ道...
-
初心者です。gulpでコンパイル...
-
前回の質問の続き function mou...
-
鍵盤アプリで、スマホの画面に...
-
スマホ上で、左右スワイプで次...
-
jQueryで同じクラス名のものを...
-
読み込んだQRコードをフォーム...
-
追加ボタンを押した際に ok ボ...
-
Colorboxがうまく設置できません
-
階層別の組織図の自動作成について
-
二次元配列を使って順位をだす...
-
【GAS】WEBアプリでハイパーリ...
-
HTMLで作った時報アプリが動き...
-
セレクトを全て選択されていな...
-
画面遷移を行わずに同一ページ...
-
jsで質問です。 ボタンが二つ存...
おすすめ情報