Random Post . 隨機文章

昨天拜訪了許多有趣的 Blogger.
發現許多人使用 Linkwithin 的服務; 不過它對中文的隨機支援,反應不好.
而且它在抓取 Feed 資料時, 只能依據索引擷取部份 data. 重複性太高.
所以我使用了一次後,就捨棄這個很棒的網路服務.
等到部落格文章有足夠的篇數,再次考慮加入這個 js.

我的 Blogger 安裝了 Wibiya 的工具列, 裡面有隨機文章的按鈕.
雖然是很好的功能設計(我很喜歡); 不過訪客不一定習慣這類工具按鍵.
所以我又開始亂弄我的部落格...


參考其他部落客,有的頁面拉的很長; 卻沒有使用 "Top" 的 JavaScript.
我的頁面只設定 5 篇文章, 看起來清爽些, 同樣有缺點.
很顯然地,大部分的文章將會像是放在衣櫃底層的不見天日.
所以在側欄劃分出一小塊區域, 顯示隨機文章.
等到文章累積一段時間後, 偶爾看看自己的舊文章也很有趣.

新增一個 Html / JavaScript 的模組, 或者合併在原有的模組也可以.

Random Code
<script type="text/javascript">
var randarray = new Array();var l=0;var flag; var numofpost=5;function randomposts(json){ var total = parseInt(json.feed.openSearch$totalResults.$t,10); for(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;}}document.write('<ul>'); for(n in randarray){ var p=randarray[n];var entry=json.feed.entry[p-1]; for(k=0; k < entry.link.length; k++){if(entry.link[k].rel=='alternate'){var item = "<li>" + "<a href=" + entry.link[k].href + ">" + entry.title.$t + "</a> </li>"; document.write(item);}} }document.write('</ul>');} </script>
<script src="/feeds/posts/default?alt=json-in-script&start-index=1&max-results=9999&callback=randomposts" type="text/javascript">
</script>

var numofpost=5  是隨機顯示 5 篇. 數值自訂
max-results=9999  是隨機搜尋結果的最大值,
有的部落格是屬於時間性的,例如新聞,或是限時活動.
也許不需要隨機顯示太舊的文章. 避免新文章減少曝光機會.
這時候 max-results 的數值就不必設太多.
雖然這種文字連結的隨機功能,不像 Linkwithin 有預覽圖片.
卻是  "方便的"  "隨機"  文章.

更新
這一段程式碼另外開成隨機頁面, 側欄部份改成 Blogger Plugin .
很方便,卻有點小缺點...  影響網頁的開啟速度.
但是我找到另一位熱心的部落客提供的程式服務,速度上會快些.
由此進入 (Click here)