您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在内容可编辑div中的光标处插入文本

在内容可编辑div中的光标处插入文本

以下功能将在插入符号位置插入文本,并删除现有选择。它适用于所有主流桌面浏览器:

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

基于注释,下面是一些用于保存和还原选择的代码。在显示上下文菜单之前,应该将返回值存储saveSelection一个变量中,然后restoreSelection在隐藏上下文菜单之后并插入文本之前,将该变??量传递给它以恢复选择。

function saveSelection() {
    if (window.getSelection) {
        sel = window.getSelection();
        if (sel.getRangeAt && sel.rangeCount) {
            return sel.getRangeAt(0);
        }
    } else if (document.selection && document.selection.createRange) {
        return document.selection.createRange();
    }
    return null;
}

function restoreSelection(range) {
    if (range) {
        if (window.getSelection) {
            sel = window.getSelection();
            sel.removeAllRanges();
            sel.addRange(range);
        } else if (document.selection && range.select) {
            range.select();
        }
    }
}
其他 2022/1/1 18:18:47 有527人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶