Changeset 3478
- Timestamp:
- 12/23/07 15:45:04 (5 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/userscripts/hatena.haiku.expandrepliestree.user.js
r3436 r3478 5 5 // ==/UserScript== 6 6 7 (function ( ) { with (D()) {7 (function (unsafeWindow) { with (D()) { 8 8 const WAIT = 1; 9 const ICON = <><![CDATA[ 10 data:image/png;base64, 11 iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAD1BMVEX45u/y 12 zt////+za4X///8WHaQkAAAABXRSTlP/////APu2DlMAAAAZdEVYdFNvZnR3 13 YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAARElEQVQI103OORIAQAgCQWD4 14 /5s3cC+yLgtV5aVVyckmkW0PG8YBNK3IDj0k+vlNX3fzbkb8d++q+WrYVLZd 15 1JaeDF8WzSMCBiKqHq0AAAAASUVORK5CYII= 16 ]]></>.toString().replace(/\s+/g, ""); 9 const ICON = [ 10 "data:image/png;base64,", 11 "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAD1BMVEX45u/y", 12 "zt////+za4X///8WHaQkAAAABXRSTlP/////APu2DlMAAAAZdEVYdFNvZnR3", 13 "YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAARElEQVQI103OORIAQAgCQWD4", 14 "/5s3cC+yLgtV5aVVyckmkW0PG8YBNK3IDj0k+vlNX3fzbkb8d++q+WrYVLZd", 15 "1JaeDF8WzSMCBiKqHq0AAAAASUVORK5CYII=" 16 ].join(""); 17 17 18 18 19 GM_addStyle([ … … 36 37 }); 37 38 38 unsafeWindow.Hatena.Haiku.Pager.dispatchEvent('loadedEntries', entry.parentNode.wrappedJSObject );39 unsafeWindow.Hatena.Haiku.Pager.dispatchEvent('loadedEntries', entry.parentNode.wrappedJSObject || entry.parentNode); 39 40 return entry; 40 41 } 41 42 42 43 function expandChildReplies (entry) { 43 var body = $X(" div[@class='list-body']", entry)[0];44 var body = $X("./div[@class='list-body']", entry)[0]; 44 45 return parallel( 45 $X(" div[@class='info']/span[@class='replies']/a[@href]", body).map(function (a) {46 $X("./div[@class='info']/span[@class='replies']/a[@href]", body).map(function (a) { 46 47 a.style.opacity = "0.6"; 47 48 // don't show if this was showed entry … … 63 64 function appendAndLoadNext (e) { 64 65 a.style.opacity = "0.2"; 65 $X(" div[@class='list-body']/div/a[img[@src='/images/icon-replylink.gif']]", e)[0].style.opacity = "0.2";66 $X("./div[@class='list-body']/div/a[img[@src='/images/icon-replylink.gif']]", e)[0].style.opacity = "0.2"; 66 67 body.appendChild(applyJavaScript(e)); 67 68 return wait(WAIT).next(function () { … … 86 87 87 88 function expandReplies (entry) { 88 var a = $X(" div[@class='list-body']/div/a[img[@src='/images/icon-replylink.gif']]", entry)[0];89 var a = $X("./div[@class='list-body']/div/a[img[@src='/images/icon-replylink.gif']]", entry)[0]; 89 90 var raw_href = $X("string(@href)", a); 90 91 var es = $X("//div[@class='entry' and .//span[@class='timestamp']/a[@href = '"+raw_href+"']]"); … … 110 111 if (a) a.style.opacity = "0.2"; 111 112 e = applyJavaScript(e); 112 var body = $X(" div[@class='list-body']", e)[0];113 var body = $X("./div[@class='list-body']", e)[0]; 113 114 entry.parentNode.insertBefore(e, entry); 114 115 body.appendChild(entry); … … 126 127 var entries = $X("//div[@class='entries']/div[@class='entry'][.//img[starts-with(@src, '/images/icon-repl')]]"); 127 128 loop(entries.length, function (n) { 128 var e = entries[n] ;129 if (e. wrappedJSObject._gm_expandreplies_applied) return;130 e. wrappedJSObject._gm_expandreplies_applied = true;129 var e = entries[n].wrappedJSObject || entries[n]; 130 if (e._gm_expandreplies_applied) return; 131 e._gm_expandreplies_applied = true; 131 132 var handler = function () { 132 133 if (window.getSelection().toString()) return; … … 145 146 // $X("div/div[@class='body']", e)[0].addEventListener("click", handler, false); 146 147 147 var info = $X(" div/div[@class='info']", e)[0];148 var info = $X("./div/div[@class='info']", e)[0]; 148 149 info.appendChild(h("<span class='expand'><a href='javascript:void(156)'>Expand</a></span>").firstChild); 149 150 info.addEventListener("click", handler, false); … … 202 203 // $X(exp, context, type); 203 204 function $X (exp, context, type /* want type */) { 205 // console.log(String(exp)); 204 206 if (typeof context == "function") { 205 207 type = context; … … 306 308 value = self.callback[okng].call(self, value); 307 309 } catch (e) { 310 alert(e); 308 311 next = "ng"; 309 312 value = e; … … 468 471 }// End of JSDeferred 469 472 470 })(); 473 })(this.unsafeWindow || this); 474 475
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)