if (!result.error) {……resultは、受け取ったXMLデータのテキストがただずらずらと保管されているのではなく、オブジェクトになっています。この中に、必要な情報が整理され保管されているのです。データが正しく受け取れたかどうかは「error」プロパティでチェックできます。!result.errorをチェックすることで、エラーがない場合にのみ処理を実行させることができます。for (var i = 0; i < result.feed.entries.length; i++) {……}result内の「feed」というオブジェクトに、取得したフィード情報がまとめられています。個々のデータ(「エントリー」と呼ばれる、各記事の情報をまとめたもの)は「entries」というプロパティに配列として保管されています。ですから、繰り返しを使い、ここから順にエントリーのオブジェクトをとり出し、そこから情報を調べていけばよいわけです。var entry = result.feed.entries[i];それを行っているのが、この部分です。まず、entries配列からエントリーのオブジェクトをとり出しておきます。そしてcreateElementで新たな<div>タグのDOMオブジェクトを作って、エントリーのタイトルをその中に組み込みます。エントリーのタイトルは、「entry.title」というように、エントリーオブジェクトのtitleプロパティで取り出せます。
var div = document.createElement("div");
div.innerText = entry.title;
container.appendChild(div);
google.load("feeds", "1",{"callback":OnLoad});
google.setOnLoadCallback(OnLoad); ↓google.load("feeds", "1",{"callback":OnLoad});こんな具合に、google.loadを実行する際、第3引数として{"callback":OnLoad}という連想配列を渡してやります。これで、ライブラリの読み込みが完了したら自動的にOnLoadを実行させることができます。つまり、setOnLoadCallbackは不要となるのです。※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>Sample</title>
<style>
h1 {font-size: 14pt; font-weight:bold;
background-color:#DDF; padding:3px;}
</style>
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("feeds", "1");
google.setOnLoadCallback(OnLoad);
function OnLoad() {
var feed = new google.feeds.Feed
("http://feeds.feedburner.com/GoogleJapanBlog");
feed.load(feedLoaded);
}
function feedLoaded(result) {
if (!result.error) {
var container = document.getElementById("container");
container.innerHTML = '';
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
var div = document.createElement("div");
div.innerText = entry.title;
container.appendChild(div);
}
}
}
</script>
</head>
<body>
<h1>Google Feed API</h1>
<p>Google Japan Blogの新着記事</p>
<div id="container">Loading...</div>
</body>
</html>
| << 前へ | 次へ >> |