javascript - 光标在替换时卡在上标或下标中
问题描述
我有两个按钮将选定的文本转换为上标或下标。当我将文本转换为上标时,我的光标卡在上标行高中并且不会恢复到正常行高,并且下标也出现相同的错误。如果有人可以帮助我解决此错误,请。谢谢你。
function getText(tag) {
var text = document.getElementsByClassName("div-input")[0].innerHTML;
console.log(text);
var selected = "";
if (window.getSelection) {
selected = window.getSelection().toString();
} else if (document.selection && document.selection.type != "Control") {
selected = document.selection.createRange().text;
}
var newnode = document.createElement(tag);
var node = document.createTextNode(selected);
newnode.appendChild(node);
replaceSelectedText(newnode);
}
function replaceSelectedText(replacementText) {
var sel, range;
if (window.getSelection) {
sel = window.getSelection();
if (sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
range.insertNode(replacementText);
}
} else if (document.selection && document.selection.createRange) {
range = document.selection.createRange();
range.text = replacementText;
}
}
<html>
<head>
<title>Question Paper Website</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="main.js"></script>
</head>
<body>
<button class="superscript btn" onclick="getText('sup')">S<sup>2</sup></button>
<button class="subscript btn" onclick="getText('sub')">S<sub>2</sub></button>
<div contentEditable=true class="div-input" id="questionData" style="display:block;height:300px;width:300px;border:1px solid;"></div>
</body>
</html>
解决方案
推荐阅读
- javascript - 如何更新猫鼬特定值而不将其他值转换为null?
- android - 签署我的颤振应用程序时,我无法构建应用程序*已编辑*
- oracle - 使用 Oracle SQL Developer 进行调试时无法“进入”另一个子程序
- javascript - 在 React 中的 Firestore 中渲染保存的 HTML 字符串
- java - 如何仅将文本内容加载到标签内的 JTextPane 中?
- python - 从导入的 excel 文件中过滤字典条目
- python - 无法将图像添加到pygame
- python - 使用 python 抓取网页('NoneType' 对象没有属性 'get_text')
- python-3.x - 选择后获取OptionMenu值并存储在数组中
- python - Spyder Anaconda 无法启动