Google AJAX Feed APIでブログの更新情報を表示
複数のブログを運営していると「他のブログの更新情報をメインのブログに表示したい」という場合があります。MovableTypeで複数のブログを運営しているのなら以前紹介した方法を使えば良いのですが、他のブログがレンタルブログだったりWordPressだった場合、そうはいきません。
そこでGoogle AJAX Feed APIの登場です。
これでサイトに他のブログの更新情報を表示します。
表示例(shinとkiyoのサイトの更新情報部分)
続きを読む »
まずGoogleのアカウントを取得しログイン済みの状態でサインアップ用のサイトにアクセスします。このサイトで、APIキーを取得して下さい。
続いて取得したAPIキーを<head>〜</head>内に読み込みます。
<script type="text/javascript" src="http://www.google.com/jsapi?key=APIキー"></script>
テキストエディタ等で下記をコピペ後feed.jsとして保存。
FTPソフトでサーバーにアップロードします。
var urls = new Array("表示したいブログのRSS1",
"表示したいブログのRSS2(カンマで区切って増やせます)");
google.load("feeds", "5");
function initialize() {
var container = document.getElementById("google-feed");
for (var n = 0; n < urls.length;n++ ) {
var feed = new google.feeds.Feed(urls[n]);
feed.setNumEntries(1);
feed.load(function(result) {
if (!result.error) {
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
container.innerHTML += "<ul><li><a href='" + entry.link + "'>" + result.feed.title + " - " + entry.title + " (" + changeDate(entry.publishedDate) + ")" + "<\/a><\/li><\/ul>";
}
}
});
}
}
//日付表記を変換
function changeDate(str){
var myDate=new Date(str);
var MM=myDate.getMonth()+1;
if(MM<10){MM="0"+MM;}
var DD=myDate.getDate();
if(DD<10){DD="0"+DD;}
var date=MM+"/"+DD;
return date;
}
google.setOnLoadCallback(initialize);
青色の数字は一つのブログにつき表示したい記事数です。
このファイルを<head>〜</head>に読み込み。
<script type="text/javascript" src="feed.js"></script>
後は更新情報を表示したい箇所に
<div id="google-feed"></div>
と記述して終わりです。
因に更新情報部分は<li>〜</li>で囲んであるのでお好みでCSSを記述して下さい。
記述例。
#google-feed li{
background:transparent url(img/li.gif) no-repeat scroll 0 0;
padding:0 0 10px 20px;
}
これはエントリーのタイトルと日付だけを表示する方法ですが、本文を表示することも出来るようです。
« 元に戻す
IE6でmarginが2倍になるのを回避する
IE6は様々なバグがあり、Webサイトを作っていると本当に嫌になりますが、中でも困るのはfloatを指定した要素にmarginを指定すると、marginが二倍になるというバグです。
paddingで対応してしまうというのも一つの手ですが、もっと簡単な方法はfloatした要素にdisplay:inlineを記述すること。これだけでmarginが二倍になるというバグが嘘のように直ります。
続きを読む »
例
#content{
float: right;
width: 500px;
margin-right: 10px;
}
↓
#content{
float: right;
width: 500px;
margin-right: 10px;
display:inline
}
以上です。ただしこの記述実はブロック要素をインライン要素にしてしまっているので、気にする方は他のやり方(上述したpaddingで対応するなど※1)で対応する必要があります。個人的にはそんなに気にしていません。
※1.paddingで対応する場合#contentのwidthをpaddingの分引いてあげなくてはなりません。
« 元に戻す
リンクをクリックした時に出る点線を出ないようにする
IEやFirefoxではリンクをクリックした際にその周りが点線で囲まれます。
クリックした、ということは分かりやすいのかもしれませんがデザイン的にはとてもに邪魔です。
これを消す方法です。
<head> 〜 </head>内に以下を追加します。
<script type="text/javascript">
<!--
function disable_links_outline() {
var blur = function () { this.blur() };
for (var i = 0; i < document.links.length; i++)
document.links[i].onfocus = blur;
}
//-->
</script>
そして<body>タグを以下のように変更。
<body onload="disable_links_outline()">
これだけで邪魔な点線が出なくなります。