選択範囲のテキストを取得

var str=(window.getSelection ? window.getSelection() : 
document.getSelection ? document.getSelection() : 
document.selection.createRange().text);

なんでこんなめんどいかというと、この処理がブラウザ依存だから。

safari
window.getSelection
mozilla
document.getSelection
IE
document.selection

なんでAPI統一しないかな。こういうの見るとまだまだjavascriptは泥臭い言語だよな、と思うのでした。Web2.0とか言ってもインフラがこれじゃなあ・・・。この辺のブラウザ依存の部分をうまくラップした開発環境*1が必須なのか・・・。それはそれで泥臭いと言うかバッドノウハウというか。

*1:prototype.jsとかか?