いままで、ブログのURLや引用をTwitterにツイートするブックマークレットは何度か作っています。
上の2番目のエントリーでTwitter公式のBookmarkletを改造して使ったりしていたんだけど、大分前にメインブラウザをChromeに切り替えていて、Chromeでは動かないようだったのでサクっと書き直してみました。前は外部JSを呼び出す方式をとっていたんだけど、面倒なコードをいくつか捨ててワンライナーです。
Twitter Clip
↑のリンクをブックマークしてください。
- そのまま実行すると、見ているページの「タイトル t.co短縮URL」というフォーマットでTweetBoxが表示されます。
- ページ内を選択した状態で実行すると、「”引用部分” t.co短縮URL」というフォーマットでTweetBoxが表示されます。
前のブックマークレットでは文字数制限にかからないように切り捨てとかやってたんだけど、省きました。
ちなみに、スクリプトの中身を分かりやすく書くとこんな感じ。
javascript: (function(){ var d=document, w=window, l=location, e=encodeURIComponent, s=(d.selection)? d.selection.createRange().text:(w.getSelection)? ''+w.getSelection():(d.getSelection)? d.getSelection():'', t=!s?d.title:'%22'+s+'%22', f='http://twitter.com/share?_='+(new Date()).getTime()+'&url'+e(l.href)+'&text='+e(t); if(!w.open(f,'_blank'))l.href=f; })();
t変数の部分がテキスト部分になります。ここを変更すればフォーマットを自由に変更できます。
例えば、文頭に必ずハッシュタグ(#clip)を入れたい場合は、
t='#clip '+(!s?d.title:'%22'+s+'%22'),
こんな感じにすればいいはず。
引用の場合もタイトルは入れたい場合、
t=!s?d.title:'%22'+s+'%22 '+d.title,
こんな感じかと。
Chrome、Firefoxではちゃんと動くと思いますが、多分IEでも動くと思います。
enjoy!