在我的网页上,我有一个contenteditable
div
元素。按下特定键时,执行一个函数:
function bla(element) {
if (getSelectionHtml() != "") {
replaceSelectedText("text");
}
}
getSelectionHtml()
检查用户是否选择了某些内容。 replaceSelectedText(text)
用给定的字符串替换选定的文本。这两个功能都正常工作
替换所选文本后,我想取消'用户的选择,因为选择现在等于“' new'字符串,所以只是删除文本不是一个选项。
我试过了:
element.style.userSelect = "none";
element.style.userSelect = "text;
但它没有用,因为userSelect: none
似乎没有用contenteditable
更改div元素中的任何内容。此外,对于这样一个简单的问题,这个解决方案看起来很丑陋。
那么,我该如何取消用户的选择?
答案 0 :(得分:1)
我认为您想完全删除选择。一旦用
替换了字符串,就可以这样做window.getSelection().removeAllRanges()
基本上,一旦选择了内容范围,您就可以使用window.getSelection()
方法获取范围,该方法返回有关所选内容的详细信息。它有许多功能可以改变范围并完全消除范围。要了解更多信息,您可以简要阅读所有支持的方法Selection API