javascript - 具有 selectAll 焦点的 Contenteditable div 不能完全工作

标签 javascript jquery html css

我在这样的表格中有一些 div:

<div contenteditable="true"
     onfocus="document.execCommand('selectAll',false,null)">Something</div>

当通过单击聚焦一个 div 时,一切正常,整个文本都被选中。

问题是,当我通过选项卡在 div 之间导航时,我想要相同的行为。事实上,按选项卡导航只允许我编辑 div 而无需选择文本。

我怎样才能做到这一点?

最佳答案

在元素获得焦点后执行命令,而不是在焦点上。要延迟它,您可以 use a timeout ,这会将回调放入事件队列,在元素获得焦点后执行。

您的代码应该是(不使用任何内联脚本,但使用有问题的 jQuery 标记):

$('div[contenteditable]').on('focus', function() {
  setTimeout(function() {
    document.execCommand('selectAll', false, null)
  }, 0);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div contenteditable>Something</div>
<div contenteditable>Something New</div>

关于javascript - 具有 selectAll 焦点的 Contenteditable div 不能完全工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34353281/

相关文章:

javascript - 使用javascript在HTML SELECT OPTION中突出显示 "text"的子字符串

javascript - 如何使用 JavaScript Regex 替换字符串中双引号之间的文本?

javascript - Kendo UI,如何在 kendo 网格单元格上手动调用 validate()

Javascript从本地file.txt创建数组

jquery - Bootstrap 3 移动设备上的多个菜单合并为一个

php - Jquery - 如何使用带有复选框的 Hide() 来启用动画(过渡)?

javascript - 在 AJAX 调用的同时加载 HTML 片段

javascript - 定位重叠 Canvas

javascript - 文本选择扩展后如何在 iOS 中捕获选定的文本范围

javascript - Jquery获取所选选项下拉列表的文本