◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
首先下载饭否JS文件 fanfou.rar 。解压后看到如下fanfou.js文件代码
fanfou = new Object();
fanfou.Timeline = function() {
this.server = 'http://api.fanfou.com';
if (typeof fanfou_name == 'undefined') {
this.name = '';
} else {
this.name = fanfou_name;
}
if (typeof fanfou_count == 'undefined' || isNaN(fanfou_count)) {
this.count = 20;
} else {
this.count = parseInt(fanfou_count);
}
if (this.name == '') {
this.timeline = 'public';
} else {
if (typeof fanfou_timeline != 'undefined' && (fanfou_timeline == 'friends' || fanfou_timeline == 'public')) {
this.timeline = fanfou_timeline;
} else {
this.timeline = 'user';
}
}
};
fanfou.Timeline.prototype = {
getDate: function(str) {
var arr = str.split(' ');
var str = arr[1] + ' ' + arr[2] + ', ' + arr[5] + ' ' + arr[3];
var current_date = new Date();
var parsed_date = Date.parse(str) - current_date.getTimezoneOffset() * 60 * 1000;
return new Date(parsed_date);
},
fullDate: function(date) {
return date.getFullYear() + '-' + (date.getMonth() >= 9 ? '' : '0') + (date.getMonth() + 1) + '-' + (date.getDate() > 9 ? '' : '0') + date.getDate() + ' ' + (date.getHours() > 9 ? '' : '0') + date.getHours() + ':' + (date.getMinutes() > 9 ? '' : '0') + date.getMinutes();
},
readableDate: function(date) {
var parsed_date = date.valueOf();
var current_date = new Date();
var past_seconds = parseInt((current_date.getTime() - parsed_date) / 1000);
if (past_seconds < 60) {
return past_seconds + ' 秒前';
} else if (past_seconds < 60 * 60) {
return (parseInt(past_seconds / 60)).toString() + ' 分钟前';
} else if (past_seconds < 60 * 60 * 24) {
return '约 ' + (parseInt(past_seconds / 3600)).toString() + ' 小时前';
} else {
return this.fullDate(date);
}
},
createName: function(obj) {
var name = document.createElement('a');
name.href = obj.url;
name.title = obj.name;
name.target = '_blank';
name.appendChild(document.createTextNode(obj.screen_name));
return name;
},
createText: function(obj) {
return document.createTextNode(obj.text);
},
createStamp: function(obj) {
var stamp = document.createElement('a');
var date = this.getDate(obj.created_at);
stamp.appendChild(document.createTextNode(this.readableDate(date)));
stamp.href = 'http://fanfou.com/statuses/' + obj.id;
stamp.className = 'stamp';
stamp.title = this.fullDate(date);
stamp.target = '_blank';
return stamp;
},
createMe: function() {
var stamp = document.createElement('a');
stamp.appendChild(document.createTextNode(" FanFou"));
stamp.href = 'http://fanfou.com/vich';/*注释:此处"vich"为饭否帐户名,可更换成你自己的饭否帐户名*/
stamp.className = 'stamp';
stamp.target = '_blank';
return stamp;
},
createLink: function() {
var item = document.createElement('li');
var link = document.createElement('a');
link.appendChild(document.createTextNode('更多消息'));
switch (this.timeline) {
case 'user':
link.href = 'http://fanfou.com/' + this.name;
break;
case 'friends':
link.href = 'http://fanfou.com/message/' + this.name;
break;
case 'public':
link.href = 'http://fanfou.com/browse';
break;
default:break;
}
link.title = '饭否';
link.target = '_blank';
item.appendChild(link);
return item;
},
createBrand: function() {
var brand = document.createElement('p');
var link = document.createElement('a');
link.href = 'http://fanfou.com/';
link.title = '饭否';
link.target = '_blank';
var img = document.createElement('img');
img.src = 'http://static.fanfou.com/img/brand.gif';
img.alt = '饭否';
link.appendChild(img);
brand.appendChild(link);
return brand;
},
statuses: function(obj) {
if (obj.length == 0) return false;
switch (this.timeline) {
case 'user'://你自己的消息
var container_name = 'fanfou_statuses_user' + obj[0].user.id;
if (!document.getElementById(container_name)) {
document.write('<div id="' + container_name +'" class="fanfou_statuses"></div>');
}
var container = document.getElementById(container_name);
var statuses = document.createElement('ul');
for (var i=0; i<obj.length; i++){
var status = document.createElement('li');
status.appendChild(document.createTextNode('微风:'));/*注释:此处“微风:”为发言人的称呼,可更换你自己喜欢的*/
status.appendChild(this.createText(obj[i]));
status.appendChild(document.createTextNode(' '));
status.appendChild(this.createStamp(obj[i]));
status.appendChild(document.createTextNode(' via'));/*注释:用于显示底部更多消息链接,删除此行将不显示。*/
status.appendChild(this.createMe());//*用于显示底部饭否链接,删除此行将不显示。
statuses.appendChild(status);
}
break;
case 'friends'://你和你朋友的消息
var container_name = 'fanfou_statuses_friends';
if (!document.getElementById(container_name)) {
document.write('<div id="' + container_name +'" class="fanfou_statuses"></div>');
}
var container = document.getElementById(container_name);
var statuses = document.createElement('ul');
for (var i=0; i<obj.length; i++){
var status = document.createElement('li');
status.appendChild(this.createName(obj[i]));
status.appendChild(document.createTextNode(':'));
status.appendChild(this.createText(obj[i].status));
status.appendChild(document.createTextNode(' '));
status.appendChild(this.createStamp(obj[i].status));
statuses.appendChild(status);
}
break;
case 'public': //所有人的消息
var container_name = 'fanfou_statuses_public';
if (!document.getElementById(container_name)) {
document.write('<div id="' + container_name +'" class="fanfou_statuses"></div>');
}
var container = document.getElementById(container_name);
var statuses = document.createElement('ul');
for (var i=0; i<obj.length; i++){
var status = document.createElement('li');
status.appendChild(this.createName(obj[i].user));
status.appendChild(document.createTextNode(':'));
status.appendChild(this.createText(obj[i]));
status.appendChild(document.createTextNode(' '));
status.appendChild(this.createStamp(obj[i]));
statuses.appendChild(status);
}
break;
default:break;
}
container.appendChild(statuses);
},
createStatuses: function(sObjName) {
switch (this.timeline) {
case 'user':
document.write('<script type="text/javascript" charset="utf-8" src="' + this.server + '/statuses/user_timeline/' + this.name + '.json?cb=' + sObjName + '.statuses&c=' + this.count + '"></' + 'script>');
break;
case 'friends':
document.write('<script type="text/javascript" charset="utf-8" src="' + this.server + '/statuses/friends_timeline/' + this.name + '.json?cb=' + sObjName + '.statuses&c=' + this.count + '"></' + 'script>');
break;
case 'public':
document.write('<script type="text/javascript" charset="utf-8" src="' + this.server + '/statuses/public_timeline.json?cb=' + sObjName + '.statuses&c=' + this.count + '"></' + 'script>');
break;
default:break;
}
}
};
ffstatuses = new fanfou.Timeline();
ffstatuses.createStatuses('ffstatuses');
在你要显示饭否的地方插入以下代码
<!--饭否输出代码开始-->
<script type="text/javascript">fanfou_name="vich";fanfou_count=1; fanfou_timeline="user";</script><script type="text/javascript" charset="utf-8" src="http://xxx.com/.../fanfou.js(你的JS文件存放路径)"></script>
<!--饭否输出代码结束->
说明:
fanfou_name="vich" /将vich换成你自己的饭否ID
fanfou_count=1 /用于控制输出饭否消息的条数 ,1为1条。
fanfou_timeline="user" /user代表你自己的消息,此处可换成“ friends ”你和你朋友的消息;“public” 所有人的消息。
此代码可用于在博客或网站上,尤其是应用于网站公告、博客动态上。因为饭否能够支持网页、MSN/GTalk/QQ、手机短信,手机WAP上网等方式随时随地发送消息。