oAutoPagerizeとOperaのFast History Navigation Modeは相性がいい
oAutoPagerizeで2ページ目以降が継ぎ足されたあとに、現在のタブで別のページを開いたとする。
その後、また元のページに戻ろうとして「戻る」を押したときに、
- 最初のページしか開いていない状態
- 2ページ目以降が継ぎ足された状態
ではエラい違いがある。
自分は2番目を好むのだが、例えばこの「はてなダイアリー」などでは、Opera のデフォルト設定では1番目の挙動をしてしまう。Google 検索結果などでは2番目の挙動であり、そのため「戻る」はキャッシュからの再描写となり、めちゃくちゃ速い。
そこで、Opera の History 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 に何かをくっつける方法ってこれで合ってるのかな? ソース読んで無理矢理解釈したけど。
- Opera は History Navigation Mode をページの内容によって自動判別するようになっているのだが、この UserJS はそれを問答無用で上書きしているので、「戻る」をした後にあれが動かなくなったとかこれが動かなくなったとかいうことがあるかもしれない。自己責任で使ってください。
- 参考。Opera 9 を更に高速に - A blog? with Σαιτω
- しかし、AutoPagerize したいようなページ (ほとんどはウェブアプリケーションとかではなく、ブログやニュースや検索結果) でこれによって起こるかもしれない不具合なんて微々たるものではないかと思う。
- 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。