Google Chromeで2chへのリンクを踏んだときに2ch専用ブラウザで開く
Google Chromeで2ちゃんねるの板やスレッドへのリンクを踏んだときに2ch専用ブラウザ(Janeなど)を開く方法。
URL書き換えエクステンションでhttpを適当な文字列に書き換え
→レジストリにそのプロトコルでJaneを起動するように入力
で実現できる
手順
- 適当なプロトコルに2chブラウザを関連付ける
- Google Chromeにスクリプトをインストールする
適当なプロトコルに2chブラウザを関連付ける
Register protocol - MozillaZine Knowledge Baseを参考に。ここではプロトコル名を「nichannel」にしたとする。
Windowsで、2chブラウザのパスが「C:\Program Files (x86)\Jane Style\Jane2ch.exe」の場合、以下のようなregファイルを書いて実行する。パスに含まれる「\」記号は「\\」にする。
REGEDIT4 [HKEY_CLASSES_ROOT\nichannel] @="URL:nichannel Protocol" "URL Protocol"="" [HKEY_CLASSES_ROOT\nichannel\shell] [HKEY_CLASSES_ROOT\nichannel\shell\open] [HKEY_CLASSES_ROOT\nichannel\shell\open\command] @="\"C:\\Program Files (x86)\\Jane Style\\Jane2ch.exe\" \"%1\""
これにより「nichannel://〜」というURLでJane Styleが起動するようになる。
Google Chromeにスクリプトをインストールする
- 2ちゃんねるの板やスレッドへのリンクをクリックしたとき、nichannelプロトコルとして開くスクリプト
// ==UserScript== // @name 2chProtocol // @namespace http://rikuba.com/ // @include * // @version 0.4 // ==/UserScript== document.addEventListener('click', { re_url: /^https?:\/\/(?!(?:www|www2|info|find|be|epg|shop|watch|p2|boo)\.)\w+\.[25]ch\.net\/\w/, xp_link: document.createExpression('ancestor-or-self::a[@href]', null), xpr: null, dummyFrame: null, handleEvent: function (e) { this.xpr = this.xp_link.evaluate(e.target, XPathResult.FIRST_ORDERED_NODE_TYPE, this.xpr); var a = this.xpr.singleNodeValue; if (a && this.re_url.test(a.href)) { this.openIn2chBrowser(a.href); e.preventDefault(); } }, openIn2chBrowser: function (url) { var dummyFrame = this.dummyFrame; if (!dummyFrame) { dummyFrame = this.dummyFrame = document.createElement('iframe'); dummyFrame.style.display = 'none'; document.body.appendChild(dummyFrame); } dummyFrame.src = url.replace(/^https?/, 'nichannel').replace('5ch.net', '2ch.net'); } });
正規表現は場当たり的に編集しているため、板やスレッドではない2ch.net内のページを専用ブラウザで開こうとしてしまう(結果、リンクをクリックしても何も起きない)かもしれない。