enablegooglewebhistory.user.jsをAutoPagerize対応に
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回目で登録済みフラグを。