如何使用vue.js和window.getSelection()?

问题描述 投票:-1回答:1

这里是一些教程的示例:

<p id="p">Example: <i>italic</i> and <b>bold</b></p>

<script>
  let range = new Range();

  range.setStart(p.firstChild, 2);
  range.setEnd(p.querySelector('b').firstChild, 3);

  alert(range); // ample: italic and bol

  // use this range for selection (explained later)
  window.getSelection().addRange(range);
</script>

如何通过vue做到这一点?

我也应该使用查询选择器吗?

我对如何在contenteditable中进行选择操作感兴趣。我可以对内容可编辑的容器使用“ ref”,但是带有粗体,斜体等标记的内部内容是动态的,并使用refs标记此代码:

... <b><i>some text</i></b> ...

不适当。

vue.js selection contenteditable
1个回答
0
投票

[如果您正在使用Selection API来操作DOM(不仅创建范围,而是添加/删除/修改/重新排序DOM节点),那么您应该在非Vue管理的DOM元素上进行这些操作。您不得修改由Vue管理的DOM的某些部分,因为Vue不会知道这些更改,并且在下一个渲染周期中尝试修补DOM时会感到困惑。 Vue“拥有”其组件的渲染DOM。

© www.soinside.com 2019 - 2024. All rights reserved.