【发布时间】:2019-01-03 07:02:39
【问题描述】:
我有一个 div,它在我的学校项目网站上用作用户友好的文本编辑器。但是,如果我选择编辑器内的所有文本并尝试用<code> tags </code> 包围它,我无法将光标移出它,它会不断将我输入的任何内容添加到同一标签中,即<code>。
一段时间后我放弃了它,但后来我找到了this 答案并尝试修改那里提到的jsfiddle,希望它能够正常工作。但没有运气。
假设我选择任何一行中的最后一个单词并用<code> 标签包围它,我可以将光标移出它,那里有非包围文本,但最后没有明文可跳转到使光标停留在<code>
如何确保光标不会卡在添加的标签中?
也许一种将光标移出的方法?
jsFiddle
function surroundSelection() {
var code = document.createElement("code");
code.style.fontStyle = "italic";
code.style.color = "#333";
code.style.background = "#ddd";
if (window.getSelection) {
var sel = window.getSelection();
if (sel.rangeCount) {
var range = sel.getRangeAt(0).cloneRange();
range.surroundContents(code);
sel.removeAllRanges();
sel.addRange(range);
}
}
}
div, input {
padding:10px;
}
div {border:1px solid;}
<input type="button" onclick="surroundSelection()" value="Surround">
<div contenteditable="true">One two three four</div>
【问题讨论】:
标签: javascript jquery html css