在Google Chrome和Internet Explorer中删除textarea中的所选文本

时间:2013-10-17 14:51:06

标签: javascript

我可以在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?

3 个答案:

答案 0 :(得分: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 

答案 1 :(得分: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;

答案 2 :(得分:0)

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