如何用Javascript替换文本区域中的选定文本

How to replace selected text in a textarea with Javascript?

本文关键字:文本 区域 Javascript 替换 何用      更新时间:2023-09-26

我有一个文本区域和一个按钮,它将以下文本添加到文本区域:

"-列表项"

如果在文本区域中选择了一些文本,我宁愿添加的文本显示为:

"-(选定文本)"

因此,实现这一点的方法是使用if函数来查看文本区域中是否选择了文本,如果是这样,则接收高亮显示的文本,以便将其附加到文本区域中的文本。

附加部分可以简单地使用document.getElementById(textarea).value += string来完成,但我不确定是否选择了文本区域中的一些文本并接收到它。

对于非IE浏览器,您可以使用textarea对象的selectionStartSelectionEnd属性执行类似操作:

function createListElement() {
    if(document.activeElement === textarea) {
        if(typeof textarea.selectionStart == 'number' && typeof textarea.selectionEnd == 'number') {
            // All browsers except IE
            var start = textarea.selectionStart;
            var end = textarea.selectionEnd;
            var selectedText = textarea.value.slice(start, end);
            var before = textarea.value.slice(0, start);
            var after = textarea.value.slice(end);
            var text = before + '- ' + selectedText + after;
            textarea.value = text;
       }
   }
}

但这样一个琐碎的操作对IE来说越来越难了,你可以在这里找到更多。

我希望这将帮助您:)