ajax – Twitter和jQuery,呈现推文链接
发布时间:2020-12-15 22:55:40 所属栏目:百科 来源:网络整理
导读:我正在使用 jquery ajax从twitter api中提取,我确定这是一种简单的方法,但我找不到如何获
我正在使用
jquery ajax从twitter api中提取,我确定这是一种简单的方法,但我找不到如何获取“推文”来呈现任何被推文出现的链接.现在它只是文字.
$.ajax({ type : 'GET',dataType : 'jsonp',url : 'http://search.twitter.com/search.json?q=nettuts&rpp=2',success : function(tweets) { var twitter = $.map(tweets.results,function(obj,index) { return { username : obj.from_user,tweet : obj.text,imgSource : obj.profile_image_url,geo : obj.geo }; }); 更新: (function($) { $.socialFader = function(options) { var settings = { tweetHolder : null,tweetCount : 100,fadeSpeed : 500,tweetName: 'jquery' }; if (options) { $.extend(settings,options); }; var URL = "http://search.twitter.com/search.json?q="+settings.tweetName+"&rpp=" + settings.tweetCount + "&callback=?"; 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); var r = ''; if (delta < 60) { r = 'a minute ago'; } else if(delta < 120) { r = 'couple of minutes ago'; } else if(delta < (45*60)) { r = (parseInt(delta / 60)).toString() + ' minutes ago'; } else if(delta < (90*60)) { r = 'an hour ago'; } else if(delta < (24*60*60)) { r = '' + (parseInt(delta / 3600)).toString() + ' hours ago'; } else if(delta < (48*60*60)) { r = '1 day ago'; } else { r = (parseInt(delta / 86400)).toString() + ' days ago'; } return r; }; String.prototype.hashify = function() { return this.replace(/#([A-Za-z0-9/.]*)/g,function(m) { return '<a target="_new" href="http://twitter.com/search?q=' + m.replace('#','') + '">' + m + "</a>"; }); }; String.prototype.linkify = function(){ return this.replace(/[A-Za-z]+://[A-Za-z0-9-_]+.[A-Za-z0-9-_:%&?/.=]+/,function(m) { return m.link(m); }); }; String.prototype.atify = function() { return this.replace(/@[w]+/g,function(m) { return '<a href="http://www.twitter.com/' + m.replace('@','') + '">' + m + "</a>"; }); }; $.getJSON(URL,function(JSON) { $.each(JSON.results,function(i,tweet) { var profilePicture = tweet.profile_image_url; var userLink = tweet.from_user; var text = tweet.text; text = text.linkify().atify().hashify(); var createdAt = new Date(tweet.created_at); var myTweet = '<a href="http://www.twitter.com/' + userLink + '" title="' + userLink + '">' + userLink + '</a> '; myTweet += text; $(settings.tweetHolder).append('<li class="cycles">' + myTweet + '</li>'); }); var elements = $(settings.tweetHolder).children(); var timeOutStart = 5000; function fader(elementId) { setTimeout(function() { $(elements[elementId]).fadeOut(settings.fadeSpeed,function() { $(elements[elementId + 1]).fadeIn(settings.fadeSpeed); }); },timeOutStart * (elementId)); }; for (var j = 0; j < elements.length; j++) { fader(j); }; }); }; })(jQuery); 在我的准备声明中: $.socialFader({ tweetHolder:"#twitter",tweetName:"nettuts",tweetCount:2 }); 解决方法
这是我写的一个插件,它真正简化了tweet / json聚合然后解析.它会使推文逐渐消失.只需抓住所需的代码即可.请享用.
(function($){ $.socialFader = function(options) { var settings = { tweetHolder : null,tweetCount : 99,}; if (options) { $.extend(settings,options); }; var URL = "http://search.twitter.com/search.json?q=jquery&rpp=" + settings.tweetCount + "&callback=?"; function relative_time(time_value) { var values = time_value.split(" "); time_value = values[1] + " " + values[2] + ",timeOutStart * (elementId)); }; for (var j = 0; j < elements.length; j++) { fader(j); }; }); }; })(jQuery); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |