自分のJavaScriptの知識のなさを実感した。
まぁ、それはいいとして
JavaScriptでテキストボックスの選択文字列を取得する方法
jQueryとピュアなJavaScriptで試した。
そんなにやることは変わらない。
ピュアなJavaScript
function isSelectedText(obj){ var selStart = obj[0].selectionStart; var selEnd = obj[0].selectionEnd; console.log(selStart); console.log(selEnd); if(selStart != -1 && selEnd != -1 && selStart != selEnd){ return true; }else{ return false; } } function getSelectedText(obj){ var selStart = obj[0].selectionStart; var selEnd = obj[0].selectionEnd; var val = obj[0].value; return val.substring(selStart, selEnd); }
コチラはjQuery。
再利用したいのでextendで実装。
$.fn.extend({ /** * 選択中のテキストを取得します */ getSelectedText:function(){ var selStart = $(this)[0].selectionStart; var selEnd = $(this)[0].selectionEnd; var val = $(this).val(); return val.substring(selStart, selEnd); } /** * 選択中かどうかを確認する */ ,isSelectedText:function(){ var selStart = $(this)[0].selectionStart; var selEnd = $(this)[0].selectionEnd; console.log(selStart); console.log(selEnd); if(selStart != -1 && selEnd != -1 && selStart != selEnd){ return true; }else{ return false; } } });
ピュアなJavaScriptもjQuery使った時も、オブジェクトの要素0にアクセスるのがポイントなんですねー。