【发布时间】:2011-03-14 12:59:33
【问题描述】:
我有一个非常好用的 Twitter 小部件(并且很容易定制),但我有一个问题。我只想发布不到两天的推文,但我不知道该怎么做。所以在 HTML 中,我有以下内容:
<ul id="twitter_update_list"></ul>
<script src="/assets/script_twitterwidget.js" type="text/javascript"></script>
<script src="http://twitter.com/statuses/user_timeline/YourTwitterProfile.json?callback=twitterCallback2&count=1" type="text/javascript"></script>
那么js就有了:
function relative_time(time_value) {
var values = time_value.split(" ");
time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
var parsed_date = Date.parse(time_value);
var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
delta = delta + (relative_to.getTimezoneOffset() * 60);
return delta;
}
function absolute_time(created_at) {
var date = (created_at).substring(0,11);
var year = (created_at).substring(26);
var time = (created_at).substring(10,26);
var full = date + year + time;
var full = new Date(Date.parse(full)).toLocaleDateString();
return full;
}
if (delta < (48*60*60)) {
function twitterCallback2(twitters) {
var statusHTML = [];
for (var i=0; i<twitters.length; i++){
var username = twitters[i].user.screen_name;
var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
return '<a href="'+url+'">'+url+'</a>';
}).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
return reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
});
statusHTML.push('<li><a target="_blank" style="font-size:100%" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'">'+absolute_time(twitters[i].created_at)+':'+'</a>'+' '+'<span>'+status+'</span></li>');
}
document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
}
}
我添加了相对时间函数和 if 语句以尝试仅发布最近的推文(没有该代码它工作得很好,但显示最后一条推文是什么,无论它有多旧)。但是,它并不能解决问题。感谢您的帮助。
【问题讨论】:
标签: javascript twitter widget