javascript - 替换 contenteditable div 中的选定文本

标签 javascript contenteditable

我一直在寻找答案,但没有成功。

是否有跨浏览器的解决方案来替换 contenteditable div 中的选定文本?
我只是希望用户突出显示一些文本并将突出显示的文本替换为 xxxxx

最佳答案

以下将在所有主要浏览器中完成工作:

function replaceSelectedText(replacementText) {
    var sel, range;
    if (window.getSelection) {
        sel = window.getSelection();
        if (sel.rangeCount) {
            range = sel.getRangeAt(0);
            range.deleteContents();
            range.insertNode(document.createTextNode(replacementText));
        }
    } else if (document.selection && document.selection.createRange) {
        range = document.selection.createRange();
        range.text = replacementText;
    }
}

关于javascript - 替换 contenteditable div 中的选定文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3997659/

相关文章:

javascript - 我们可以在另一个事件上调用为一个事件编写的 JS 函数吗?

javascript - Rails file_field 大小限制

javascript - 多个内容可编辑的 div : on Enter jumping downward and on Backspace- upward - Chrome

css - 内联 contenteditable 标签无法在 IE 中正确对齐

javascript - 回调实例化另一个发出 AJAX 请求的类的类

javascript 箭头函数 ()=>() 含义?

javascript - 浏览器与 insertUnorderedList 的差异

google-chrome - 光标在 contenteditable 中的错误位置

javascript - Lodash 和 Angular : Transform JSON object into view model

node.js - Quill.js 和 zombie .js