Google Chromeで2chへのリンクを踏んだときに2ch専用ブラウザで開く

Google Chrome2ちゃんねるの板やスレッドへのリンクを踏んだときに2ch専用ブラウザ(Janeなど)を開く方法。

URL書き換えエクステンションでhttpを適当な文字列に書き換え
レジストリにそのプロトコルでJaneを起動するように入力
で実現できる

手順

  1. 適当なプロトコル2chブラウザを関連付ける
  2. 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');
  }
});
  • [0.4] 5ch.netに対応していない2chブラウザのための修正
  • [0.3] httpsと5chに対応
  • [0.2] 余計な空白タブが開かれてしまう問題に対応
適当な名前.user.js」として保存し、Google Chromeのウィンドウにドラッグ&ドロップすると、拡張機能としてインストールできる(Google Chromeのウィンドウ幅が狭いと、インストールの確認のためのボタンが表示されない)。 スクリプトのインストール手順はGoogle Chromeで2chのURLを2ch専用ブラウザで開く:らっぱ王子を参照。

正規表現は場当たり的に編集しているため、板やスレッドではない2ch.net内のページを専用ブラウザで開こうとしてしまう(結果、リンクをクリックしても何も起きない)かもしれない。

元に戻す

  1. Chromeのメニュー(スパナのアイコン)→ツール→拡張機能から、2chProtocolをアンインストールする。インストールした上記のスクリプトを削除する。
  2. レジストリエディタでHKEY_CLASSES_ROOT\nichannelを削除する。