MightyOpticalIllusionsは錯視投稿サイトです。
いわゆる”目の錯覚”ってヤツですが、イラストや写真、動画など面白いものがアップされています。
Macウィジットで”日替わり錯視”にアクセスできるのですが、
サイトに行くとランダムに表示するボタン(Next Random Illusion>>)があったのでとってきました。
こんなJavascriptです。
< script type="text/javascript">
function randomPost() {
var script = document.createElement("script");
script.setAttribute("type", "text/javascript");
var theUrl = "http://www.moillusions.com/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 = "http://www.moillusions.com/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>
RSS(feed)にある記事の総数をcallbackして、その範囲でランダムにURLをつくっていますね。