使用ExecCommand选择焦点上的可编辑文本



我有一个简单的代码,该代码可以选择集中的元素的所有内容:

html:

  <div tabindex="-1" class="data" contenteditable="true"  (focusin)="focusin($event)" (focusout)="focusout($event)"  >Content</div>

.ts:

focusin(e) {
  console.log("focusin");
  document.execCommand("selectall");
}

问题在于,此代码选择文档中的所有文本,而不仅仅是重点关注的文本。从我在网络上看到的内容,这不是选择所有内容的工作方式,如果元素专注于元素:p>如何在可满足的div中选择所有文本?

是否有修复程序?

这是一种适用于Chrome和最新浏览器版本的解决方案:

focusin(e) {
  var range = document.createRange();
  range.selectNodeContents(e.target);
  var sel = window.getSelection();
  sel.removeAllRanges();
  sel.addRange(range);
}

最新更新