2

Internet Explorer で次のコードを使用して、選択したテキストを取得できます。

var selectedText;
  // IE version
  if (document.selection != undefined)
  {
    textComponent.focus();
    var sel = document.selection.createRange();
    selectedText = sel.text;
  }

しかし、たとえば、Google Chrome と Internet Explorer の両方で JavaScript を使用して、TEXTAREA で選択したテキストを削除する方法は?

4

3 に答える 3

1

user2793390 の回答は完全に正しくありません。選択したテキストがテキスト全体で最初に出現しない場合は機能しません!

同様の問題があり、別のアプローチを使用しました!

var selectedElemnt = document.getElementById("yourTextAreaId");
var selectedText = selectedElemnt.value;
var newText = selectedText.substr(0, selectedElemnt.selectionStart) + selectedText.substr(selectedElemnt.selectionEnd);
selectedElemnt.value = newText;
于 2014-04-14T09:17:50.310 に答える
1

インデックスを少しいじる必要があるかもしれませんが、以下のコードは多かれ少なかれ機能するはずです。

var originalText = document.getElementById("yourTextAreaId").value;
var selectedText = window.getSelection();
var startIndex = originalText.indexOf(selectedText) + 1;
var endIndex = startIndex + selectedText.length; 
var newText = originalText.substring(0,startIndex) + orignalText.substring(endIndex);
document.getElementById("yourTextAreaId").value = newText 
于 2013-10-17T15:05:06.600 に答える