oAutoPagerizeとOperaのFast History Navigation Modeは相性がいい

oAutoPagerizeで2ページ目以降が継ぎ足されたあとに、現在のタブで別のページを開いたとする。

その後、また元のページに戻ろうとして「戻る」を押したときに、

  1. 最初のページしか開いていない状態
  2. 2ページ目以降が継ぎ足された状態

ではエラい違いがある。

自分は2番目を好むのだが、例えばこの「はてなダイアリー」などでは、Opera のデフォルト設定では1番目の挙動をしてしまう。Google 検索結果などでは2番目の挙動であり、そのため「戻る」はキャッシュからの再描写となり、めちゃくちゃ速い。

そこで、OperaHistory Navigation Mode を UserJS で弄って全部のサイト継ぎ足しを実行したページで2番目の挙動をするようにしてしまう。

  • oAutoPagerizeFastHistoryNavigation.js
// ==UserScript==
// @name           oAutoPagerize Fast History Navigation
// @namespace      http://d.hatena.ne.jp/edvakf/
// @include        http://*
// @include        https://*
// ==/UserScript==
opera.addEventListener('AfterEvent.DOMContentLoaded',function(){
if(window.AutoPagerize){
  window.AutoPagerize.addFilter(
    function(pages){
      if(pages.length==1)
        opera.setOverrideHistoryNavigationMode('fast');
    }
  );
}
},false);

これを oAutoPagerize.js と一緒にインストールするだけ。

あれこれ

  • なぜか2回実行されている。うちだけ? このぐらいのものなら2回実行されても別に気にしないけど。
    • そもそも oAutoPagerize に何かをくっつける方法ってこれで合ってるのかな? ソース読んで無理矢理解釈したけど。
  • OperaHistory Navigation Mode をページの内容によって自動判別するようになっているのだが、この UserJS はそれを問答無用で上書きしているので、「戻る」をした後にあれが動かなくなったとかこれが動かなくなったとかいうことがあるかもしれない。自己責任で使ってください。
  • setOverrideHistoryNavigationMode については JavaScript and History Navigation - Opera Knowledge Base を参照。
  • 0AutoPagerize.Settings.js に FORCE_TARGET_WINDOW という設定項目があり、継ぎ足されたページから開くページの target を変えることができる。デフォルトでは新しいタブに開くようになっていて、これによって不用意なページ遷移を防ぐ (1番目のケースに陥らないようにする?) ようになっている。しかし、FastHistoryNavigation をすることによって「戻る」が速くなるので、自分は FORCE_TARGET_WINDOW:false にしておいた。


oAutoPagerize 1.2.2から本家のオプションに追加されました。

0AutoPagerize.Settings.js の HISTORY_MODE_FAST を true にすれば OK。