Javascriptで選択文字列の取得
選択した(ハイライト表示させた)文字列をjsで取得しようとして、ちょっとだけはまったのでメモ。
まずは最終的なコード。
function getText() { IE='\v'=='v'; var SelectedText; if(IE){ SelectedText = document.selection.createRange().text; } else{ SelectedText = window.getSelection().toString(); } alert(SelectedText); }
SelectedText = window.getSelection().toString();
これ。
実は
alert(window.getSelection());
これで表示できてしまう。
window.getSelection()の返り値が文字列に見えてしまうんだけど実はオブジェクトで、
alertやdocument.writeのときは自動的に変換されているとのこと。
詳しくはこちら。
window.getSelection - Web API インターフェイス | MDN
window.getSelection()を使用するときは注意!
というよりも、勝手に変換してしまうときがあるってことに驚いた。