gpt4 book ai didi

javascript - 将选定的文本保留在输入焦点上

转载 作者:行者123 更新时间:2023-11-28 09:24:07 24 4
gpt4 key购买 nike

我正在尝试在选定的文本上添加链接(在 contenteditable 内)。链接窗口只是一个输入字段。问题是,在我选择一些文本后,单击链接按钮以显示链接输入字段并聚焦,我丢失了所选文本。

WYSIHTML5 是如何做到的:http://xing.github.com/wysihtml5/ ?如果您单击工具栏中的链接图标并将焦点放在链接的输入字段上,则您选择的文本将保持选中状态。

或者,我可以将选择保存在变量中,但如何在 blur() 上调用它?我必须使变量成为全局变量吗?在使用 blur() 时,我收到“selected not Define”

HTML:

<button class="link_button">L</button>
<div class="link window hidden"><input name='link' class='link_input' autofocus='autofocus' value='http://'/></div>

jQuery:

$('.link_button').click(function() {
$('.link').toggleClass('hidden');
});

$('.link_input').focus(function() {
var selected = saveSelection();
})

$('.link_input').blur(function() {
restoreSelection(selected);
})

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();
}
}
}

有什么想法吗?谢谢!

最佳答案

您可以使用rangy library方便选择管理。

  1. 这是一个跨浏览器支持的库。
  2. 使用简单

关于javascript - 将选定的文本保留在输入焦点上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14615270/

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