加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读