Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何取消contenteditable div中的选择?_Javascript_Html_Selection - Fatal编程技术网

Javascript 如何取消contenteditable div中的选择?

Javascript 如何取消contenteditable div中的选择?,javascript,html,selection,Javascript,Html,Selection,在我的页面上,我有一个contenteditable div元素。按下特定键时,将执行一个函数: function bla(element) { if (getSelectionHtml() != "") { replaceSelectedText("text"); } } getSelectionHtml检查用户是否选择了某些内容。replaceSelectedTexttext将所选文本替换为给定字符串。这两个功能都正常工作。 替换所选文本后,我想“取消”用户的选择,因为选择

在我的页面上,我有一个contenteditable div元素。按下特定键时,将执行一个函数:

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!很好。我没想到会这么简单