Safari で選択した文字列を取得するには window.getSelection() を使うが、これの返す値がよくわからない。オブジェクトであることはわかるし、
var s=window.getSelection();
var props='';
for (var i in s){
props+=i+':'+s[i]+'\n';
}
alert(props);
みたいなコードで プロパティを調べると、toString:[function] が定義されていることもわかる(toStringしか定義されていないこともわかる)。しかし、s.toString()=undefined なのだ。alert(s) とすれば、選択された文字列が表示されるので、toString()は実装されているように思うのだが。。。
しょうがないので、このなんだかわからないオブジェクトから文字列を取得するために、str=''+s なんてコードを書いてみたりして。
groundwalker.com