Javascript 如何取消contenteditable div中的选择?
在我的页面上,我有一个contenteditable div元素。按下特定键时,将执行一个函数:Javascript 如何取消contenteditable div中的选择?,javascript,html,selection,Javascript,Html,Selection,在我的页面上,我有一个contenteditable div元素。按下特定键时,将执行一个函数: function bla(element) { if (getSelectionHtml() != "") { replaceSelectedText("text"); } } getSelectionHtml检查用户是否选择了某些内容。replaceSelectedTexttext将所选文本替换为给定字符串。这两个功能都正常工作。 替换所选文本后,我想“取消”用户的选择,因为选择
function bla(element) {
if (getSelectionHtml() != "") {
replaceSelectedText("text");
}
}
getSelectionHtml检查用户是否选择了某些内容。replaceSelectedTexttext将所选文本替换为给定字符串。这两个功能都正常工作。
替换所选文本后,我想“取消”用户的选择,因为选择现在等于“新建”字符串,因此仅删除文本不是一个选项
我试过这个:
element.style.userSelect = "none";
element.style.userSelect = "text;
但它不起作用,因为userSelect:none似乎不会改变contenteditable的div元素中的任何内容。而且,对于这样一个简单的问题,这个解决方案看起来相当丑陋
那么,我怎样才能取消用户的选择呢?我认为您希望完全删除选择。将字符串替换为后,即可执行此操作
window.getSelection().removeAllRanges()
因此,基本上,一旦选择了内容的范围,就可以使用window.getSelection方法获得范围,该方法返回关于所选内容的一组详细信息。它有许多功能来改变范围和完全删除范围。要了解更多信息,您可以简要阅读所有支持的方法try element.selection.empty@SanchitPatiyal我尝试过:函数抛出错误UncaughtTypeError:无法读取未定义的属性'empty':document.selection.empty如何;元素选择在IE中是可以支持的。你能告诉我你用的是哪个浏览器吗?@Akanshulati我用的是ChromeThanks!很好。我没想到会这么简单