読者です 読者をやめる 読者になる 読者になる

enablegooglewebhistory.user.jsをAutoPagerize対応に

Greasemonkey

Opera で Google Web History を使えるようにする UserJS - mallowlabsの備忘録AutoPagerize対応にするpatch

*** 19741.user.js	Tue Jan 22 12:51:51 2008
--- UseGoogleWebHistory.user.js	Tue Jan 22 14:01:53 2008
***************
*** 14,20 ****
  // http://www.scss.com.au/family/andrew/opera/panels/pagerank/
  // http://d.hatena.ne.jp/amatanoyo/20080104/1199450996
  // =========================================
! (function(){
  
      // avoid frame
      if (window.self != window.parent) return;
--- 14,41 ----
  // http://www.scss.com.au/family/andrew/opera/panels/pagerank/
  // http://d.hatena.ne.jp/amatanoyo/20080104/1199450996
  // =========================================
! (function(autopage){
!     // hack AutoPagerize
!     var getURL = function(){
!         if(!autopage) {
!             return document.location;
!         } else {
!             return autopage;
!         }
!     }
!     var f = arguments.callee;
!     if (window.AutoPagerize && !f.inited) {
!         f.inited = true;
!         var autopager = !window.opera ? eval("ap", window.AutoPagerize.addFilter) : window.AutoPagerize.active;
!         if (autopager) {
!             // override AutoPagerize#getNextURL
!             var onLoad = autopager[!window.opera ? 'requestLoad' : 'frameLoad'];
!             autopager[!window.opera ? 'requestLoad' : 'frameLoad'] = function(xpath, doc){
!                 if (this.requestURL) f(this.requestURL);
!                 onLoad.call(this,xpath, doc);
!             }
!         }
!     }
  
      // avoid frame
      if (window.self != window.parent) return;
***************
*** 45,51 ****
          m(c);
          return'6'+c[2];
      };
!     var url=document.location;
  
      /* create image element */
      new Image().src = 'http://www.google.com/search?client=navclient-auto&ch='+ch(url)+'&features=Rank&q=info:'+escape(url);
--- 66,72 ----
          m(c);
          return'6'+c[2];
      };
!     var url=getURL()//document.location;
  
      /* create image element */
      new Image().src = 'http://www.google.com/search?client=navclient-auto&ch='+ch(url)+'&features=Rank&q=info:'+escape(url);

AutoPagerize#getNextURLAutoPagerize#requestLoadをオーバーライドして、読み込むURLを取得しています。
getNextURLだと1回目を捕捉できていなかったのでrequestLoadに修正。
なんどもoverrideしてたので、1回目で登録済みフラグを。