2011-09-13 9 views
0

ユーザーがクリップボードにコピーできるテキストがいくつかあります。javascriptを使用してテキストエリアのコンテンツが選択されているかどうかを検出する

それはテキストエリアの内容を「選択」しているかどうかを検出することが可能です。それだけでまっすぐ進むの質問に複雑になりますよう、あまりにも多くの詳細に行くことなく


onclick(または他の)イベントハンドラを使用することは(理想的には...)オプションではありません。

このテキストは「テキスト領域外」アクションによって選択されます。 >テキストエリア内のテキストをクリックする

OR

テキストエリアを選択する(onclickの) - - >テキストエリア内のテキストが

を選択するドロップダウンの選択肢が選択されている

次のように

流れがややあります

私は、テキストエリア内のテキストの状態を検出するために、たくさんのイベントハンドラを使用することができますが、jsを介してテキストエリア内のテキストの状態を検出することによって簡単な方法があることを期待していました。


おかげ

+0

http://stackoverflow.com/を参照してください。質問/ 401593/javascript-textarea-selection/403526#403526とhttp://stackoverflow.com/questions/717224/how-to-get-selected-text-in-textarea –

答えて

1

このコードはthis questionから取得され、あなたは少しのコードを適応させる必要がありますが、それはMozillaとIEの両方のブラウザの選択にアクセスする方法を示し -

function ShowSelection() 
{ 
    var textComponent = document.getElementById('Editor'); 
    var selectedText; 
    // IE version 
    if (document.selection != undefined) 
    { 
    textComponent.focus(); 
    var sel = document.selection.createRange(); 
    selectedText = sel.text; 
    } 
    // Mozilla version 
    else if (textComponent.selectionStart != undefined) 
    { 
    var startPos = textComponent.selectionStart; 
    var endPos = textComponent.selectionEnd; 
    selectedText = textComponent.value.substring(startPos, endPos) 
    } 
    alert("You selected: " + selectedText); 
} 
+0

は、トライデントと適切なブラウザフォークのためにこの回答を選択しました。ありがとうございました! –

3

selectionStartselectionEndプロパティは、選択インデックスを保持します。

var textarea = document.getElementById("textarea1"); 
if(textarea.selectionStart == textarea.selectionEnd) alert("Nothing is selected!") 
1

このdemoをご覧ください。彼らはjQuery - fieldSelectionプラグインを使用します。

+1

両方とも有効な回答ですが、jqueryは使用しません:) –

関連する問題