Firefox3でttp://から始まるURLに飛べるようにする(navigator.registerProtocolHandler)
ttp://google.co.jp/等の不完全なリンクをロケーションバーにペーストしてサイトに移動したり、リンクをクリックして移動できるようにする。
ttp_processor.cgi等の名前にして保存し、CGIとして動かす。
#!/usr/bin/env ruby require "webrick/cgi" class TTPProcessor < WEBrick::CGI def do_GET(req, res) res.content_type = "text/html;charset=utf_8" if req.query.has_key?("url") res.set_redirect(WEBrick::HTTPStatus::MovedPermanently, 'h' + req.query["url"]) else res.body = DATA.read end end end TTPProcessor.new.start __END__ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>ttp processor</title> <script type="text/javascript"><!-- window.onload = function () { var register_protocol = document.getElementById('register_protocol'); var warning; if (typeof navigator.registerProtocolHandler !== 'function') { warning = document.createElement('strong'); warning.appendChild( document.createTextNode('(未対応です)') ); register_protocol.parentNode.insertBefore(warning, register_protocol.nextSibling); } else { register_protocol.addEventListener( 'click', function () { navigator.registerProtocolHandler( 'ttp', location.protocol + '//' + location.host + location.pathname + '?url=%s', 'Use http alias' ); }, false ); } }; --></script> </head> <body> <h1>ttp processor</h1> <p>ttp://から始まるURLをFirefoxで処理できるようにする。</p> <button id="register_protocol">この機能を登録</button> <h2>正しく機能するかチェックする</h2> <p> 登録が完了したら、<a href="ttp://www.google.co.jp/">ttp://www.google.co.jp/</a>をクリックしてwww.google.co.jpに飛べるかどうか確認する。 </p> </body> </html>