日付別表示ページの場合でも見出しタイトルを取得できる、はてなブックマーク用bookamarklet

日付別表示ページ(各見出しがname属性で区別される)タイプのダイアリーだと、ブックマークするときに見出しが取得できなくて面倒なんですよね。ということで、作ってみました。

javascript:t=document.title;a=location.hash;if (a){e=document.anchors[a.substring(1)].parentNode;if (e.nodeName.toLowerCase().indexOf('h')==0)t+=' '+e.textContent;}location='http://b.hatena.ne.jp/add?mode=confirm&title='+escape(t)+'&url='+escape(location.href);

見出しの冒頭の■をクリックしてURLに#〜が付くようにしてから、このbookamarkletを使ってください。tdiaryなどでも同様にすれば見出しが取れるかと思います。

# textContentを使っているのでIEでは動かないはず(つまり、Firefox etc.用)ですが、IEではここをinnerTextに変えると動くかも。


このブックマークレットの難点は、見出しの冒頭の■印も、投稿時間も、「このエントリーを含むブックマーク」というアイコンgifについているalt属性値も取っちゃうので、逆に消さないといけないとうところでしょうか(^^;

でも、タイトルをコピーしておいてブックマークすると抜粋できないし、抜粋するとタイトルが取れないというジレンマを抱えていて、両方欲しい場合は一度登録してからいちいち再編集していたので、これでかなり楽になりました。

# 投稿時間や「このエントリーを含むブックマーク」アイコンは、見出し要素の外にあってくれるといいんですけど。h3の意味からして、余分なものはあまり中に入れない方がいいのではないかとも思いますし。


なお、見出しの横につく「含むブックマーク」アイコンですが、location.hrefしか取っていないので、「このエントリーを含むブックマーク」じゃなくて「このページを含むブックマーク」になっちゃってますね。ということで、要改善かと。

http://d.hatena.ne.jp/hatenadiary/20050302/1109767057

ref. http://d.hatena.ne.jp/yukatti/20050302#1109761712