May 8, 2007

[翻译]随机显示文章

原文:Display Random Post
  是否曾经想如何随机显示文章?你马上就能知道:D
  首先,把下面的 javascrpit 代码添加到模板头部标签之间(模板 -> 编辑 HTML)。

<script type="text/javascript">
//<![CDATA[
var _yourBlogUrl = "http://purplemoggy.blogspot.com";

function randomPost() {
var script = document.createElement("script");
script.setAttribute(
"type", "text/javascript");
var theUrl = _yourBlogUrl +"/feeds/posts/summary?alt=json-in-script&callback=getTotalPostsCallback&start-index=1&max-results=1";
script.setAttribute(
"src", theUrl);
document.documentElement.firstChild.appendChild(script);
};
function getTotalPostsCallback(json) {
var totalResults = json.feed.openSearch$totalResults.$t;
if (totalResults > 0) {
getRandomPostNumber(totalResults);
}
};
function getRandomPostNumber(totalResults) {
var randomNumber = Math.floor((Math.random() * totalResults) + 1);
getRandomUrl(randomNumber);
};
function getRandomUrl(randomNumber) {
var script = document.createElement("script");
script.setAttribute(
"type", "text/javascript");
var theUrl = _yourBlogUrl +"/feeds/posts/summary?alt=json-in-script&callback=getTheUrlCallback&start-index=" + randomNumber + "&max-results=1";
script.setAttribute(
"src", theUrl);
document.documentElement.firstChild.appendChild(script);
};
function getTheUrlCallback(json) {
var theUrl = json.feed.entry[0].link[0].href;
window.location.href
= theUrl;
}
//]]>
</script>

  把 _yourBlogUrl 设定成你的 blog 地址。然后在任何地方添加下面的链接:
<a href="javascript:randomPost();">View Random Post</a>

  由于使用了 JSON feed 回调,你还需要确认你的 blog 有汇总 feed(summary feed)。

译注:May 05, 2007 1:57 AM 作者在评论中写到:
如果想作成按钮样式,可以这么作:
<input type="button" onclick="randomPost();" value="View Random Post"/>

0 comments:

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Powered by Blogger