2007年10月18日木曜日

TracのWikiで外部サイトへのリンクを別Windowで開くGreasemonkey

TracのWikiで外部サイトへのリンクをいちいち別Windowで開くのが面倒で、でも対策を探したけど見つからなかったのでGreasemonkey作ってみた。
Bloggerで添付ファイルのやり方がわからない(できない?)のでソースコードをそのまま書いておく。


このGreasemonkeyの仕様

  • Trac内へのリンクは同一Windowで開く
  • Trac外へのリンクは新しいWindowで開く
  • Trac内か外かは、ドメインとドメイン直下のディレクトリが同じかどうかで判断する
    • 例:現在地(Trac内のWikiページ)が http://example.com/trac/sample の場合
      • http://example.com/trac/sample/wiki/page → Trac内
      • http://example.com/foo/sample/wiki/page → ドメイン直下のディレクトリが違うのでTrac外
      • http://www.google.com/trac/sample/wiki/page → ドメインが違うのでTrac外
      • https://example.com/trac/sample/wiki/page → スキームが変わってもドメインとディレクトリが同じなのでTrac内
  • 対象ページは http(|s)://*/trac/* にしているので、ここは必要に応じて適宜変更する


ソースコード
// ==UserScript==
// @name Trac_newWindowOpener
// @namespace http://fdays.blogspot.com/
// @description A script to open a page in the new window on "Trac".
// @include http://*/trac/*
// @include https://*/trac/*
// ==/UserScript==
(function(){
var current = location.href.split("/");
var domain = current[2];
var dir = current[3];
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
var link = links[i];
var href = link.href.split("/");
if (href[2] != domain || dir != href[3]) {
link.target = "_blank";
}
}
})();

0 件のコメント:

ブログ アーカイブ

tags