Changeset 22297
- Timestamp:
- 10/29/08 01:08:51 (5 years ago)
- Location:
- lang/javascript/userscripts
- Files:
-
- 15 modified
-
amazon_crossreview.user.js (modified) (1 diff)
-
amazonownedalert.user.js (modified) (2 diffs)
-
faviconize.user.js (modified) (2 diffs)
-
flickralwaysshowexif.user.js (modified) (1 diff)
-
flickrshowlicenses.user.js (modified) (1 diff)
-
give_me_controll_.user.js (modified) (2 diffs)
-
hatebuize.user.js (modified) (2 diffs)
-
hatena.bookmark.comment-for-comment.user.js (modified) (6 diffs)
-
hatena.haiku.canvaslocker.user.js (modified) (4 diffs)
-
hatena.idea.adding.user.icon.user.js (modified) (1 diff)
-
jautopagerize.user.js (modified) (2 diffs)
-
niconicodougaanalytics.user.js (modified) (19 diffs)
-
photohito_camera_to_amazon.user.js (modified) (1 diff)
-
tophatenar_view.user.js (modified) (1 diff)
-
twitter_show_status_sequence.user.js (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/userscripts/amazon_crossreview.user.js
r16019 r22297 11 11 var json = eval("(" + json_text + ")"); 12 12 var div = document.createElement("div"); 13 for(var i = 0; i < json.users.length; i++){14 var rating = json.users[i].rating;13 div.innerHTML = json.users.map(function(user){ 14 var rating = user.rating; 15 15 if(rating < 10){ 16 16 rating = " " + rating; 17 17 } 18 div.innerHTML += "<img src='"+json.users[i].image_path+"'>";19 div.innerHTML += "["+rating+"点]"+json.users[i].user_name;20 div.innerHTML += " "+json.users[i].review + "<br />";21 } 18 return '<img src="' + user.image_path + '"/>' + 19 "[" + rating + "点]" + user.user_name + 20 " " + user.review; 21 }).join("<br/>"); 22 22 document.getElementById("handleBuy").insertBefore(div, document.getElementById("handleBuy").firstChild); 23 } 23 }; 24 24 25 25 var requestCrossreview = function(){ 26 var asin = document.getElementById("ASIN") ? document.getElementById("ASIN").value : null 26 var asin = document.getElementById("ASIN") ? document.getElementById("ASIN").value : null; 27 27 if(!asin){ return; } 28 28 29 29 var opt = { 30 method: 'get',30 method: "get", 31 31 url: "http://crossreview.jp/accessory/product/" + asin + ".json?item=7", 32 32 onload: function(res){ 33 33 showReview(res.responseText); 34 34 } 35 } 35 }; 36 36 GM_xmlhttpRequest(opt); 37 } 37 }; 38 38 39 39 window.addEventListener("load", requestCrossreview, true); -
lang/javascript/userscripts/amazonownedalert.user.js
r21317 r22297 1 1 // ==UserScript== 2 // @name Amazon Owned Alert 2 // @name Amazon Owned Alert 3 3 // @namespace http://carbonfairy.org/ns/userscripts 4 4 // @include http://www.amazon.co.jp/* … … 20 20 '<tr>', 21 21 '<td align="left" class="small">', 22 '<span class="iou_cust">=ω=. <ぁぅ〜・・</span> 「持っています」にチェックが入ってます。',22 '<span class="iou_cust">=ω=. <ぁぅ〜・・</span> 「持っています」にチェックが入ってます。', 23 23 '</td>', 24 24 '</tr>', -
lang/javascript/userscripts/faviconize.user.js
r19962 r22297 447 447 this.flag = GM_getValue('displayAutoPagerizeInfoFlag', false); 448 448 449 // regist Greasemonkey menu command449 // register Greasemonkey menu command 450 450 GM_registerMenuCommand( 451 451 'faviconize - toggle AutoPagerize info display', … … 494 494 var daic = new APInfoDisplayController(); 495 495 496 // regist callback function to AutoPagerize496 // register callback function to AutoPagerize 497 497 addFilterToAP( fc.faviconize.bind(fc) ); 498 498 addDocumentFilterToAP( daic.displayAPInfo.bind(daic) ); -
lang/javascript/userscripts/flickralwaysshowexif.user.js
r13299 r22297 83 83 headers: { 84 84 "User-Agent" : navigator.userAgent 85 + " (Greasemonkey;Flickr Always Show Exif)"85 + " Greasemonkey (Flickr Always Show Exif)" 86 86 }, 87 87 onload: function (res) { -
lang/javascript/userscripts/flickrshowlicenses.user.js
r9211 r22297 44 44 headers : { 45 45 "Accept" : "text/xml,application/xml,application/rdf+xml", 46 "User-Agent" : navigator.userAgent + " (Greasemonkey;Flickr Show Licenses)"46 "User-Agent" : navigator.userAgent + " Greasemonkey (Flickr Show Licenses)" 47 47 }, 48 48 -
lang/javascript/userscripts/give_me_controll_.user.js
r21097 r22297 2 2 // @name give me controll !! 3 3 // @namespace http://d.hatena.ne.jp/janus_wel/ 4 // @description of the vimperatorer, by the vimperatorer, for the vimperatorer4 // @description of the Vimperatorer, by the Vimperatorer, for the Vimperatorer 5 5 // @include * 6 6 // ==/UserScript== … … 53 53 helper.type = 'hidden'; 54 54 helper.id = 'GM_give_me_controll'; 55 window.content.document.getElementsByTagName('body') [0].appendChild(helper);55 window.content.document.getElementsByTagName('body').item(0).appendChild(helper); 56 56 GM_log('append'); 57 57 } -
lang/javascript/userscripts/hatebuize.user.js
r19963 r22297 587 587 this.flag = GM_getValue('displayAutoPagerizeInfoFlag', false); 588 588 589 // regist Greasemonkey menu command589 // register Greasemonkey menu command 590 590 GM_registerMenuCommand( 591 591 'hatebuize - toggle AutoPagerize info display', … … 634 634 var daic = new APInfoDisplayController(); 635 635 636 // regist callback function to AutoPagerize636 // register callback function to AutoPagerize 637 637 addFilterToAP( hc.hatebuize.bind(hc) ); 638 638 addDocumentFilterToAP( daic.displayAPInfo.bind(daic) ); -
lang/javascript/userscripts/hatena.bookmark.comment-for-comment.user.js
r20868 r22297 7 7 // ==/UserScript== 8 8 9 (function() {9 (function() { 10 10 11 11 var w = window.wrappedJSObject || window; … … 28 28 }); 29 29 var id = id_node.firstChild.data; 30 30 31 31 // ブックマークのURL 32 32 var bookmark_url = 'http://b.hatena.ne.jp/' + id + '/?url=' + entry_url; 33 33 34 34 // 「コメントする」ボタンをつける 35 35 var response = createResponse( id, bookmark_url ); 36 36 bookmark_user.appendChild( response ); 37 37 38 38 // ブックマーク数を表示する 39 39 var bookmarkCount = createBookmarkCount( bookmark_url ); … … 62 62 function createResponse( id, url ) { 63 63 var img = createElement( 'img', { src: 'http://d.hatena.ne.jp/images/b_entry.gif' }, { cursor: 'pointer' } ); 64 observe( img, 'click', function() {64 observe( img, 'click', function() { 65 65 var form_id = 'comment-form-' + id; 66 66 // 開いてたら閉じる 67 if( $(form_id) != null ) {67 if( $(form_id) != null ) { 68 68 this.parentNode.removeChild( $(form_id) ); 69 69 return; … … 75 75 form.appendChild( createHidden( 'mode', 'enter' ) ); 76 76 form.appendChild( createHidden( 'url' , url ) ); 77 form.appendChild( createHidden( 'rkm' , w.Hatena.rkm ) );78 var title = document.title.replace( /^はてなブックマーク/, 'ブコメレス to ' + id );77 form.appendChild( createHidden( 'rkm' , w.Hatena.rkm ) ); 78 var title = document.title.replace( /^はてなブックマーク/, 'ブコメレス to ' + id ); 79 79 form.appendChild( createHidden( 'title', title ) ); 80 80 var submit = createElement( 'input', { type: 'submit', value: 'レスする' } ); … … 91 91 } 92 92 var result = []; 93 for( var i=0 ; i<parent.childNodes.length; i++ ) {93 for( var i=0, l=parent.childNodes.length; i<l; i++ ) { 94 94 var child = parent.childNodes[i]; 95 95 if( f(child) ) { … … 130 130 // 配列の各要素に対して関数を実行する関数 131 131 function each( array, f ) { 132 for( var i=0; i<array.length; i++ ) { 133 f( array[i] ); 134 } 132 for( var i=0, l=array.length; i<l; f( array[i++] )); 135 133 } 136 134 137 function $( id ) { return document.getElementById( id ); }135 function $( id ) { return document.getElementById( id ); } 138 136 function observe(target, type, listener) { 139 137 if (target.addEventListener) target.addEventListener(type, listener, false); -
lang/javascript/userscripts/hatena.haiku.canvaslocker.user.js
r22055 r22297 9 9 10 10 location.href = 'javascript:(' + function () { 11 (function (unsafeWindow){11 (function (unsafeWindow) { 12 12 if (unsafeWindow && unsafeWindow.Hatena && unsafeWindow.Hatena.Star){ 13 13 var isResizeLocked = false; … … 32 32 } 33 33 } 34 34 35 35 function $N(name, attr, childs) { 36 36 var ret = document.createElement(name); … … 56 56 return ret; 57 57 } 58 58 59 59 var $E = Ten.DOM.getElementsByTagAndClassName; 60 60 … … 69 69 buttonContainer.appendChild(resizeLockButton); 70 70 resizeLockButton.addEventListener('click', toggleResizeLockHandler, false); 71 72 (function (orig){73 Hatena.Haiku.Canvas.prototype.resizeTo = function (){71 72 (function (orig) { 73 Hatena.Haiku.Canvas.prototype.resizeTo = function () { 74 74 if (!isResizeLocked) orig.apply(this, arguments); 75 75 }; 76 76 })(Hatena.Haiku.Canvas.prototype.resizeTo); 77 77 78 78 var textSelector = $E('img', 'input-selector-text')[0]; 79 79 new Ten.Observer(textSelector, 'onclick', function () { -
lang/javascript/userscripts/hatena.idea.adding.user.icon.user.js
r16695 r22297 11 11 var links = node.getElementsByTagName("a"); 12 12 13 var username, icon; 14 for (var i = 0; i < links.length; i++) { 15 if (links[i].href.substr(-1) != "/") continue; 16 if (links[i].parentNode.tagName == "H1") continue; 17 if (links[i].parentNode.id == "breadcrumbs") continue; 13 var username, icon, link; 14 for (var i = 0, l = links.length; i < l; i++) { 15 link = links[i]; 16 if (link.href.substr(-1) != "/") continue; 17 if (link.parentNode.tagName == "H1") continue; 18 if (link.parentNode.id == "breadcrumbs") continue; 18 19 19 if ( links[i].href.match(/i\.hatena\.ne\.jp\/(.+)\//)) {20 if (/i\.hatena\.ne\.jp\/([^\/]+)/.test(link.href)) { 20 21 username = RegExp.$1; 21 22 if (username == "idea" || username == "t") continue; 22 if (link s[i].innerHTML == username.substring(0, 5) + "..") {23 link s[i].innerHTML = username;24 // link s[i].title = username;23 if (link.innerHTML == username.substring(0, 5) + "..") { 24 link.innerHTML = username; 25 // link.title = username; 25 26 } 26 27 27 28 icon = document.createElement("img"); 28 icon.src = 'http://www.hatena.ne.jp/users/' + username.substring(0, 2) + '/'29 + username + '/profile_s.gif';29 icon.src = 'http://www.hatena.ne.jp/users/' + username.substring(0, 2) 30 + '/' + username + '/profile_s.gif'; 30 31 icon.width = icon.height = 16; 31 32 icon.style.verticalAlign = "bottom"; 32 link s[i].insertBefore(icon, links[i].firstChild);33 link.insertBefore(icon, link.firstChild); 33 34 icon = null; 34 35 } -
lang/javascript/userscripts/jautopagerize.user.js
r16968 r22297 117 117 overrideMimeType: 'text/html; charset=' + document.characterSet, 118 118 headers: { 119 "User-Agent": navigator.userAgent + " (Greasemonkey;" + AutoPagerize.VERSION + ")",119 "User-Agent": navigator.userAgent + " Greasemonkey (" + AutoPagerize.VERSION + ")", 120 120 }, 121 121 onload : function (req) { try { … … 169 169 url : uri, 170 170 headers : { 171 "User-Agent": navigator.userAgent + " (Greasemonkey;" + AutoPagerize.VERSION + ")",171 "User-Agent": navigator.userAgent + " Greasemonkey (" + AutoPagerize.VERSION + ")", 172 172 }, 173 173 onload : function (req) { try { -
lang/javascript/userscripts/niconicodougaanalytics.user.js
r7362 r22297 39 39 } 40 40 if(!$j('h1:first').is('*')) return; 41 $j('<a ></a>').attr('href', 'javascript:void(0);').text('この動画の盛り上がり度を解析')41 $j('<a/>').attr('href', 'javascript:void(0);').text('この動画の盛り上がり度を解析') 42 42 .insertBefore('#WATCHFOOTER').one('click', function() { 43 43 $j(this).unbind('click'); … … 139 139 method: 'GET', 140 140 headers: { 141 'User-Agent': 'Mozilla/ 4.0 (compatible)Greasemonkey (NicoNicoDouga - Analytics)'141 'User-Agent': 'Mozilla/5.0 Greasemonkey (NicoNicoDouga - Analytics)' 142 142 }, 143 143 url: endpoint + 'getwaybackkey?thread=' + this.thread_id, … … 145 145 self.waybackkey = res.responseText.split('=')[1]; 146 146 }, 147 onerror: function(res) { GM_log(res.status + ':' + res.responseText); }147 onerror: function(res) { GM_log(res.status + ':' + res.responseText); } 148 148 }); 149 149 }, … … 162 162 method: 'POST', 163 163 headers: { 164 'User-Agent': 'Mozilla/ 4.0 (compatible)Greasemonkey (NicoNicoDouga - Analytics)',164 'User-Agent': 'Mozilla/5.0 Greasemonkey (NicoNicoDouga - Analytics)', 165 165 'Content-type': 'text/xml' 166 166 }, … … 169 169 onload: function(res) { 170 170 var responseXML = (new DOMParser).parseFromString( 171 res.responseText, "application/xml");171 res.responseText, 'application/xml'); 172 172 var chats = responseXML.getElementsByTagName('chat'); 173 173 var thread = responseXML.getElementsByTagName('thread')[0]; … … 182 182 callback(comments, responseXML); 183 183 }, 184 onerror: function(res) { GM_log(res.status + ':' + res.responseText); }184 onerror: function(res) { GM_log(res.status + ':' + res.responseText); } 185 185 }); 186 186 } … … 204 204 'lWkAAAAASUVORK5CYII='].join(''); 205 205 206 $j('<div ></div>').attr({id: 'niconicodouga_analytics'})207 .append($j('<h3 ></h3>').text('ニコニコ Analytics'))206 $j('<div/>').attr({id: 'niconicodouga_analytics'}) 207 .append($j('<h3/>').text('ニコニコ Analytics')) 208 208 .append( 209 $j('<p ></p>').text('解析したコメント数:')210 .append($j('<span ></span>').attr({id: 'comment_count'}))209 $j('<p/>').text('解析したコメント数:') 210 .append($j('<span/>').attr({id: 'comment_count'})) 211 211 ) 212 212 .insertBefore($j('#WATCHFOOTER')) 213 $j('<h4 ></h4>').text('コメントサマリー').append(214 $j('<img src="' + info_icon_data + '" alt="" />')213 $j('<h4/>').text('コメントサマリー').append( 214 $j('<img src="' + info_icon_data + '" alt=""/>') 215 215 .css({ 216 216 cursor: 'help', … … 228 228 }) 229 229 ).insertBefore( 230 $j('<div ></div>')230 $j('<div/>') 231 231 .attr({id: 'overtime_graph', className: 'placeholder'}) 232 232 .appendTo($j('#niconicodouga_analytics')) 233 233 ); 234 234 235 $j('<h4 ></h4>').text('コメントグラフ').append(236 $j('<img src="' + info_icon_data + '" alt="" />')235 $j('<h4/>').text('コメントグラフ').append( 236 $j('<img src="' + info_icon_data + '" alt=""/>') 237 237 .css({ 238 238 cursor: 'help', … … 251 251 }) 252 252 ).insertBefore( 253 $j('<div ></div>')253 $j('<div/>') 254 254 .attr({id: 'placeholder', className: 'placeholder'}) 255 255 .appendTo($j('#niconicodouga_analytics')) 256 256 ); 257 257 258 $j('<h4 ></h4>').text('動画盛り上がり度バブルチャート').append(259 $j('<img src="' + info_icon_data + '" alt="" />')258 $j('<h4/>').text('動画盛り上がり度バブルチャート').append( 259 $j('<img src="' + info_icon_data + '" alt=""/>') 260 260 .css({ 261 261 cursor: 'help', … … 274 274 }) 275 275 ).insertBefore( 276 $j('<div ></div>').attr({id: 'bubblesholder', className: 'placeholder'})276 $j('<div/>').attr({id: 'bubblesholder', className: 'placeholder'}) 277 277 .appendTo($j('#niconicodouga_analytics')) 278 278 ); 279 279 if(video_info.is_premium == '1') { 280 $j('<a ></a>').attr({280 $j('<a/>').attr({ 281 281 href: 'javascript:void(0);', 282 282 id: 'more_data' … … 284 284 285 285 $j('#comment_count').after( 286 $j('<img src="' + info_icon_data + '" alt="" />')286 $j('<img src="' + info_icon_data + '" alt=""/>') 287 287 .css({ 288 288 cursor: 'help', … … 303 303 } 304 304 305 $j('<p ></p>')305 $j('<p/>') 306 306 .attr({ className: 'userscript_credit' }) 307 .html('provided by <a href="http://blog.fulltext-search.biz/">noriaki</a>.<br />' +307 .html('provided by <a href="http://blog.fulltext-search.biz/">noriaki</a>.<br/>' + 308 308 'powered by <a href="http://www.nicovideo.jp/">ニコニコ動画</a>, and ' + 309 309 '<a href="http://jquery.com/">jQuery</a>, ' + … … 324 324 continue; 325 325 } 326 comment.index = ~~(pmsec / vlmsec * DIVISION) + (vlmsec == pmsec ? - 1 : 0);326 comment.index = ~~(pmsec / vlmsec * DIVISION) + (vlmsec == pmsec ? - 1 : 0); 327 327 comments.add(comment); 328 328 } … … 334 334 $j(this).unbind('click'); 335 335 $j('.placeholder').append( 336 $j('<div ></div>').attr({ className: 'plot_overlay'})336 $j('<div/>').attr({ className: 'plot_overlay'}) 337 337 ); 338 338 $j('.plot_overlay').each(function(i) { … … 530 530 z-index: 99; 531 531 opacity: 0.6; 532 background: #333 no-repeat center center url( "data:image/gif;base64,R0lGODlhKwALAPEAADc8QP///5ianP///yH/C05FVFNDQVBFMi4wAwEAAAAh/h1CdWlsdCB3aXRoIEdJRiBNb3ZpZSBHZWFyIDQuMAAh/hVNYWRlIGJ5IEFqYXhMb2FkLmluZm8AIfkECQoAAAAsAAAAACsACwAAAjKEjgjLltnYg/PFChveVvPLheA2hlhZoWYnfd6avqcMZy1J14fKLvrEs/k+uKAgMkwVAAAh+QQJCgAAACwAAAAAKwALAAACPcSOCMsgD2FjsZqEx6x885hh3veMZJiYn8qhSkNKcCy4B2vNsa3pJA6yAWUUGm9Y8n2Oyk7T4posYlLHrwAAIfkECQoAAAAsAAAAACsACwAAAj2EjgjLMA9hY6maalvcb+IPChO3eeF5jKTUoKi6DqYLwutMYzaJ58nO6flSmpisNcwwjEfK6fKZLGJSqK4AACH5BAkKAAAALAAAAAArAAsAAAJAhI4Iy5bZ2JiUugcbfrH6uWVMqDSfRx5RKnQnxa6p+w6xNpu1nY/9suORZENd7eYrSnbIRRMQvGAizhAV+gIUAAA7AAAAAAAAAAAA");532 background: #333 no-repeat center center url('data:image/gif;base64,R0lGODlhKwALAPEAADc8QP///5ianP///yH/C05FVFNDQVBFMi4wAwEAAAAh/h1CdWlsdCB3aXRoIEdJRiBNb3ZpZSBHZWFyIDQuMAAh/hVNYWRlIGJ5IEFqYXhMb2FkLmluZm8AIfkECQoAAAAsAAAAACsACwAAAjKEjgjLltnYg/PFChveVvPLheA2hlhZoWYnfd6avqcMZy1J14fKLvrEs/k+uKAgMkwVAAAh+QQJCgAAACwAAAAAKwALAAACPcSOCMsgD2FjsZqEx6x885hh3veMZJiYn8qhSkNKcCy4B2vNsa3pJA6yAWUUGm9Y8n2Oyk7T4posYlLHrwAAIfkECQoAAAAsAAAAACsACwAAAj2EjgjLMA9hY6maalvcb+IPChO3eeF5jKTUoKi6DqYLwutMYzaJ58nO6flSmpisNcwwjEfK6fKZLGJSqK4AACH5BAkKAAAALAAAAAArAAsAAAJAhI4Iy5bZ2JiUugcbfrH6uWVMqDSfRx5RKnQnxa6p+w6xNpu1nY/9suORZENd7eYrSnbIRRMQvGAizhAV+gIUAAA7AAAAAAAAAAAA'); 533 533 } 534 534 #niconicodouga_analytics .gridLabel { font-size: 80%; } … … 548 548 549 549 // Utility 550 Number.prototype.z = function(len) {550 Number.prototype.z = function(len) { 551 551 if(Math.pow(10,len) <= this) return this.toString(); 552 552 for(var i=0,res=''; i<len; i++) res += '0'; … … 555 555 }; 556 556 557 Array.prototype.fill = function(v) {557 Array.prototype.fill = function(v) { 558 558 if(v.constructor !== Number) { 559 var F = function() {};559 var F = function() {}; 560 560 F.prototype = v; 561 561 for(var i=0,l=this.length;i<l;i++) this[i] = new F(); … … 606 606 } 607 607 return result; 608 } 608 }; 609 609 610 610 // External jQuery Loader … … 1102 1102 // return [true] if necessary 1103 1103 has_need_for_check: function() { 1104 var last_check_day = new Date(GM_getValue('last_check_day', "Thu Jan 01 1970 00:00:00 GMT+0900"));1104 var last_check_day = new Date(GM_getValue('last_check_day', 'Thu Jan 01 1970 00:00:00 GMT+0900')); 1105 1105 var current_day = this.beginning_of_day(); 1106 1106 if(current_day > last_check_day) { -
lang/javascript/userscripts/photohito_camera_to_amazon.user.js
r21685 r22297 30 30 try{ 31 31 var resultdom = new XML(resultxml); 32 }catch(e) {32 }catch(e){ 33 33 GM_log(e.toString()); 34 34 } -
lang/javascript/userscripts/tophatenar_view.user.js
r17952 r22297 265 265 var cls = ""; 266 266 if (className) { 267 cls = "(?: \\s[^>]*?)?\\sclass\\s*=\\s*([\"'])(?:(?:\\\\\\1|(?!\\1).)+?\\s+)?" + className + "(?:\\s+(?:\\\\\\1|(?!\\1).)+?)?\\1";268 } 269 var reg = new RegExp("<" + tagName + cls + "(?: \\s[^>]*)?>(?:(?!<" + tagName + "\\b)[\\s\\S])*?</" + tagName + "\\s*>", "ig");267 cls = "(?:[ \\t\\r\\n][^>]*?)?[ \\t\\r\\n]class[ \\t\\r\\n]*=[ \\t\\r\\n]*([\"'])(?:(?:\\\\\\1|(?!\\1).)+?[ \\t\\r\\n]+)?" + className + "(?:[ \\t\\r\\n]+(?:\\\\\\1|(?!\\1).)+?)?\\1"; 268 } 269 var reg = new RegExp("<" + tagName + cls + "(?:[ \\t\\r\\n][^>]*)?>(?:(?!<" + tagName + "\\b)[\\s\\S])*?</" + tagName + "[ \\t\\r\\n]*>", "ig"); 270 270 return html.match(reg); 271 271 } -
lang/javascript/userscripts/twitter_show_status_sequence.user.js
r22140 r22297 1 1 // ==UserScript== 2 2 // @name ShowStatusSequence 3 // @namespace http://www.madin.jp/diary/?date=20081023 3 // @namespace http://www.madin.jp/diary/?date=20081023 4 4 // @description 個別 post のページを開いたとき、それを含むユーザページに移動し、文脈を把握できるようにする 5 5 // @include http://twitter.com/* 6 6 // @include https://twitter.com/* 7 // @include http://explore.twitter.com/* 7 // @include http://explore.twitter.com/* 8 8 // ==/UserScript== 9 9 … … 27 27 http.onreadystatechange = function () { 28 28 if (http.readyState != 4) return; 29 else if (http.status == 200) {29 else if (http.status == 200) { 30 30 try { 31 31 linkList = getElementsByXPath('//a[@class="entry-date"]', createHTMLDocumentByString(http.responseText)); … … 55 55 } catch (ex) {ShowStatusSequence.printError (ex)} 56 56 } else ShowStatusSequence.messageArea.showMessage ('HTTP error ' + http.status); 57 } 57 }; 58 58 http.send(null); 59 59 }; … … 132 132 })(); 133 133 if (TWITTER_PAGE_INDEX_LIMIT >= nextPageNum) return nextPageNum; 134 else return ShowStatusSequence.getNextPageNum(nextPageNum, false);134 else return ShowStatusSequence.getNextPageNum(nextPageNum, false); 135 135 }; 136 136 … … 178 178 179 179 function createHTMLDocumentByString (str) { 180 var html = str.replace(/^[\s\S]*?<html(?:[ \t\r\n][^>]*)?>[ \t\n\r]*|[ \t\r\n]*<\/html[ \t\r\n]*>[\S\s]*$/ig, ''); 180 var html = str.replace(/^[\s\S]*?<html(?:[ \t\r\n][^>]*)?>[ \t\n\r]*|[ \t\r\n]*<\/html[ \t\r\n]*>[\S\s]*$/ig, ''); 181 181 var htmlDoc = document.implementation.createDocument(null, 'html', null); 182 182 var fragment = createDocumentFragmentByString(html); 183 183 try { 184 184 fragment = htmlDoc.adoptNode(fragment); 185 } catch (e ) {185 } catch (ex) { 186 186 fragment = htmlDoc.importNode(fragment, true); 187 187 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)