var str=(window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().text);
なんでこんなめんどいかというと、この処理がブラウザ依存だから。
なんでAPI統一しないかな。こういうの見るとまだまだjavascriptは泥臭い言語だよな、と思うのでした。Web2.0とか言ってもインフラがこれじゃなあ・・・。この辺のブラウザ依存の部分をうまくラップした開発環境*1が必須なのか・・・。それはそれで泥臭いと言うかバッドノウハウというか。
*1:prototype.jsとかか?