Changeset 38882

Show
Ignore:
Timestamp:
03/30/11 02:34:02 (2 years ago)
Author:
NeoCat
Message:

search.js: Move hashtag linking to twicli.js

Location:
websites/twicli
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • websites/twicli/plugins/search.js

    r38828 r38882  
    113113                        var target = eles[i]; 
    114114                        if (target.className == "status") { 
    115                                 target.innerHTML = target.innerHTML.replace(/<a .*?>.*?<\/a>|(\W|_|^)([##])(\w{2,})(?=\W|$)/gi, function(_,d1,m,t){ 
    116                                         if (_.substr(0,1) == '<') return _; // skip link 
    117                                         if (t.match(/^[##]\d+$/)) return _; 
    118                                         return d1+'<a href="http://search.twitter.com/search?q=' + encodeURIComponent(t) +'" onclick="return twsSearch(\'#'+t+'\')">'+m+t+'</a>'; 
    119                                 }); 
     115                                eles = target.getElementsByTagName("a"); 
     116                                for (var j = 0; j < eles.length; j++) { 
     117                                        target = eles[j]; 
     118                                        if (target.className.indexOf("hashtag") >= 0) 
     119                                                (function(h){ target.onclick = function(){ return twsSearch(h) } })(target.title); 
     120                                } 
    120121                                break; 
    121122                        } 
  • websites/twicli/twicli.js

    r38881 r38882  
    782782                //本文 (https〜をリンクに置換 + @を本家リンク+JavaScriptに置換) 
    783783                " <span id=\"text-" + eid + "\" class=\"status\">" + 
    784                 text.replace(/https?:\/\/[^\/\s]*[\w!#$%&'()*+,.\/:;=?@~-]+(?=&\w+;)|https?:\/\/[^\/\s]*[\w!#$%&'()*+,.\/:;=?@~-]+|[@@]([\/\w-]+)/g, function(_,u){ 
    785                                 if (!u) { 
     784                text.replace(/https?:\/\/[^\/\s]*[\w!#$%&'()*+,.\/:;=?@~-]+(?=&\w+;)|https?:\/\/[^\/\s]*[\w!#$%&'()*+,.\/:;=?@~-]+|[@@]([\/\w-]+)|(\W|_|^)([##])(\w+)(?=\W|$)/g, function(_,u,t,h,s){ 
     785                                if (!u && !h) { 
    786786                                        var paren = ''; 
    787787                                        if (_.substr(_.length-1) == ')') { // 末尾の")"はURLに含めない 
     
    790790                                        } 
    791791                                        return "<a class=\"link\" target=\"_blank\" href=\""+_+"\" onclick=\"return link(this);\">"+_+"</a>"+paren; 
     792                                } 
     793                                if (h == "#" || h == "#") { 
     794                                        if (s.match(/^\d+$/)) return _; 
     795                                        return t+"<a target=\"_blank\" class=\"hashtag\" title=\""+s+"\" href=\"http://search.twitter.com/search?q="+encodeURIComponent(s)+"\">"+h+s+"</a>"; 
    792796                                } 
    793797                                if (u.indexOf('/') > 0) return "<a target=\"_blank\" href=\""+twitterURL+u+"\" onclick=\"return link(this);\">"+_+"</a>"; 
     
    10871091                        var s = document.createElement('div'); 
    10881092                        s.id = tw_node.id + "-" + id; 
    1089                         var x = makeHTML(tw[i], no_name, tw_node.id); 
    1090                         s.innerHTML = x; 
     1093                        s.innerHTML = makeHTML(tw[i], no_name, tw_node.id); 
    10911094                        s.screen_name = tw[i].user.screen_name; 
    10921095                        s.tw = tw[i]; // DOMツリーにJSONを記録