2

我可以在 Internet Explorer 中使用此代码获取选定的文本:

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

但是,如何删除 TEXTAREA 中的选定文本,例如,在 Google Chrome 和 Internet Explorer 中使用 JavaScript?

4

3 回答 3

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 回答
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 回答
0

如果您使用的是 IE v9 或更高版本,请使用window.getSelection()适用于所有现代浏览器的它。

于 2013-10-17T14:54:46.893 回答