gpt4 book ai didi

javascript - 防止单击其他元素时丢失突出显示

转载 作者:行者123 更新时间:2023-12-03 12:26:10 27 4
gpt4 key购买 nike

我正在开发一个博客,我想要一个部分来添加帖子。我想象它与我现在用来写这篇文章的 StackExchange 编辑器非常相似。

我已经成功地使用文本区域来获取当前插入符位置、插入位置等信息。

我现在遇到的问题是当用户单击另一个元素(即粗体工具)时,不会丢失文本区域中突出显示的文本

默认情况下(至少在 Chrome 中),当您突出显示文本区域中的文本,然后单击页面上的其他位置时,文本区域将失去焦点,突出显示的文本也会随之失去。

最佳答案

当文本区域失去焦点时,默认情况下它将丢失任何先前的选择,因此在 onblur 事件中,您可以使用以下函数保存当前选择:

    function getSelectedText() {
var txtarea = document.getElementById(textBoxScript);
var start = txtarea.selectionStart;
var finish = txtarea.selectionEnd;
var sel = txtarea.value.substring(start, finish);
return sel;
}

要将其设置回焦点事件,您可以使用以下函数:

    function selectText(startPos, endPos, tarea) {
// Chrome / Firefox
if (typeof (tarea.selectionStart) != "undefined") {
tarea.focus();
tarea.selectionStart = startPos;
tarea.selectionEnd = endPos;
return true;
}
// IE
if (document.selection && document.selection.createRange) {
tarea.focus();
tarea.select();
var range = document.selection.createRange();
range.collapse(true);
range.moveEnd("character", endPos);
range.moveStart("character", startPos);
range.select();
return true;
}
}

关于javascript - 防止单击其他元素时丢失突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24197487/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com