ブロガーにランダムな投稿を表示したいと思います。
グーグルからJavaScriptを入手して試してみましたが、ランダムな投稿の数が正しくありません(10のはずですが、4、2などの場合もあります)。何が起こっているのかを確認しようとしたところ、json.feed.entry [500] がエラーをスローすることがわかりました。
これが私が使用したjavascriptです
<script type="text/javascript">
function randomposts(json) {
var randarray = new Array();
var l=0;
var flag;
var numofpost=10;
var total = parseInt(json.feed.openSearch$totalResults.$t,10);
for(var i=0;i < numofpost;) {
flag=0;
randarray.length=numofpost;
l=Math.floor(Math.random()*total);
for(j in randarray){
if(l==randarray[j]){
flag=1;}
}
if(flag==0&&l!=0){
randarray[i++]=l;
}
}
// correct output
// alert(randarray);
document.write('<ul>');
// dummy for testing 500 limit
//for (var x = 0; x < numofpost; x++) {
// randarray[x]= 495 + x;
//}
for(var n in randarray){
var p=randarray[n];
var entry=json.feed.entry[p-1];
var posttitle = entry.title.$t;
for(var k=0; k < entry.link.length; k++){
if(entry.link[k].rel=='alternate'){
document.write('<li> ' + posttitle.link(entry.link[k].href) + '</li>');
}
}
}
document.write('</ul>');
}
</script>
<script src="/feeds/posts/default?alt=json-in-script&start-index=1&max-results=1000&callback=randomposts" type="text/javascript"></script>
現在var total = 500;
、最初の 500 件の投稿に対してのみランダムが機能するように設定しています。
この問題を解決するには?
更新: try catch ブロックを追加しましたが、エラーはTypeError: Cannot read property 'title' of undefined です
更新 2: 次の図は、コンソールのスナップショットです。json.feed.entry 500 は未定義です。