Changeset 3416

Show
Ignore:
Timestamp:
12/21/07 20:42:57 (5 years ago)
Author:
secondlife
Message:

lang/javascript/userscripts/hatena.haiku.autopagerizeforhaiku.user.js: loadedEntries にフックするようにした

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/userscripts/hatena.haiku.autopagerizeforhaiku.user.js

    r3239 r3416  
    88 
    99var w = unsafeWindow; 
     10var p = w.Hatena.Haiku.Pager; 
    1011var Ten = w.Ten; 
    1112 
     
    1314var appending = false; 
    1415var lastMaxScrollY = 0; 
    15 var lastChangedTime = 0; 
    1616var now = function() { 
    1717  return Number(new Date); 
    1818}; 
    1919 
     20p.addEventListener('loadedEntries', function() { 
     21  appending = false; 
     22}); 
     23 
    2024w.addEventListener('scroll', function(ev) { 
    21     if (!enable) return; 
    22     if (lastMaxScrollY != w.scrollMaxY &&  
    23         now() > lastChangedTime + 1000 // wait 
    24     ) { 
    25         appending = false; 
     25  if (!enable) return; 
     26 
     27  if (!appending) { 
     28    if ((w.scrollMaxY - w.scrollY) < THRESHOLD) { 
     29      lastMaxScrollY = w.scrollMaxY; 
     30      appending = true; 
     31      var anchor = Ten.Selector.getElementsBySelector('div.pager:first-child > a:first-child')[0]; 
     32      var mEv = e = w.document.createEvent('MouseEvents'); 
     33      mEv.initEvent('click',true,true); 
     34      anchor.dispatchEvent(mEv); 
    2635    } 
    27  
    28     if (!appending) { 
    29         if ((w.scrollMaxY - w.scrollY) < THRESHOLD) { 
    30           lastMaxScrollY = w.scrollMaxY; 
    31           appending = true; 
    32           var anchor = Ten.DOM.getElementsByTagAndClassName('div','pager')[0].getElementsByTagName('a')[0]; 
    33           var mEv = e = w.document.createEvent('MouseEvents'); 
    34           mEv.initEvent('click',true,true); 
    35           anchor.dispatchEvent(mEv); 
    36           lastChangedTime = now(); 
    37         } 
    38     } 
     36  } 
    3937}, false); 
    4038