取消选择contenteditable元素

我试图删除一个可疑的字段内的选择。 我的代码是这样的:

Text


我通过document.execCommand('selectAll', false, null);自动选择h1的文本document.execCommand('selectAll', false, null);

删除输入的选择有效,但它不适用于h1 。 我怎样才能做到这一点?

检查这个小提琴


这张照片显示了它对我的行为:

在此处输入图像描述

如您所见,我只是单击deselect h1 ,文本仍然被选中。 我正在使用Chrome。

这里的答案解决了我的问题,但由于某种原因它被删除了。 就是这样:

window.getSelection().removeAllRanges();"替换$('h1').blur() window.getSelection().removeAllRanges();"修复它。

我在SO上找到了这个 ,应该是你想要的:

 if (window.getSelection) { if (window.getSelection().empty) { // Chrome window.getSelection().empty(); } else if (window.getSelection().removeAllRanges) { // Firefox window.getSelection().removeAllRanges(); } } else if (document.selection) { // IE? document.selection.empty(); } 

工作小提琴

这是工作代码

 $(document).ready(function() { $('h1').focus(); document.execCommand('selectAll', false, null); }) $("#deselect").click(function(){ window.getSelection().removeAllRanges(); }); 

https://jsfiddle.net/v73e3xdf/2/