コトバノウタカタ

よしなしごとをつらつらとつづるばしょ。

はてなダイアリーに飛ぶブックマークレット

他ユーザのブックマークやアンテナ、アイデアなどを見ているとき、その人のダイアリーが見たいなあ、と思うことがままある。ヘッダにある矢印をクリックしていけば、あるいはURLの最初の文字をdに変えれば、ダイアリーにたどり着くことはできるのだが、どちらもけっこうめんどくさい。

ということで、一発でそのユーザのダイアリーに飛べるブックマークレットを作ってみた。はてなではjavascriptが張れないので他所に置いている。

マシンが死ぬような致命的な不具合は発生しないと思うのだが、もし問題が起きても当方は一切関知しません。自己責任で使用してくださいますよう、よろしくお願いします。


   bookmarklet


こういうブックマークレットは既に誰かが作っているとは思うのだが、勉強がてら作ってみた。はてなブックマークレットにはとりあえずまだ載ってないようだけど。

実はブックマークレットなるものを作るのはこれがはじめて。そもそもjavascriptさえろくに作ったことがない。既存のブックマークレットを切り貼りし、ネットでリファレンスを調べながらなんとか作ってみた。とりあえずちゃんと動いてくれるとは思うが、不備不具合はご愛嬌と思ってご容赦いただきたい。コメントなりで指摘していただければありがたい。

作りとしてはいたって単純で、最初の「/」から次の「/」までをユーザIDとして取り込み、それを「http://d.hatena.ne.jp/」にくっつけているだけ。はてな質問だけはこのやり方ではうまく行かないので、userid=の後の文字列を取って同じようにダイアリーのURLにくっつけている。これでうまくいってると思うのだけど。*1

同様の手法で見ているユーザのアンテナやブックマーク、はてな質問のユーザ情報などに移動させることもできる。


いちおうソースコードも載せておく。


はてなの他のサービスからはてなダイアリーに飛ぶブックマークレット(はてな質問には未対応)

javascript:(function(){var startpos=location.href.indexOf('/',7);var endpos=location.href.indexOf('/',startpos+1);var username=location.href.substring(startpos+1, endpos);location.href='http://d.hatena.ne.jp/'+username;}());


はてなの他のサービスからはてなダイアリーに飛ぶブックマークレット(はてな質問にも対応)

javascript:(function(){if(location.href.substring(7,23)!='www.hatena.ne.jp'){var startpos=location.href.indexOf('/',7);var endpos=location.href.indexOf('/',startpos+1);var username=location.href.substring(startpos+1, endpos);location.href='http://d.hatena.ne.jp/'+username;}else{var upos=location.href.indexOf('userid=');var uname=location.href.substring(upos+7);location.href='http://d.hatena.ne.jp/'+uname;}}());
関連サイト

*1:「URLのn番目の要素を取って来る」のような関数があるのかもしれないが、よく知らないのでこんなベタな方法でやっております。