Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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 单击div,获取插入符号,用相同的内容替换div,contenteditable=true,然后将插入符号选择放在单击的位置_Javascript_Selection_Contenteditable_Svelte_Caret - Fatal编程技术网

Javascript 单击div,获取插入符号,用相同的内容替换div,contenteditable=true,然后将插入符号选择放在单击的位置

Javascript 单击div,获取插入符号,用相同的内容替换div,contenteditable=true,然后将插入符号选择放在单击的位置,javascript,selection,contenteditable,svelte,caret,Javascript,Selection,Contenteditable,Svelte,Caret,我试图用contenteditable=true copy替换div,然后在一次单击中关注第二个div 让我们聚焦=错误; {#如果!专注} { 专注=正确; }}> 我的同僚们都是精英。选择权的责任,发明人阿迪皮斯·埃乌斯·沃鲁帕特,权贵们的行为,阻碍了新的生命之光的实现,阻碍了目标的实现? {:else} { 聚焦=假; }}> 我的同僚们都是精英。选择权的责任,发明人阿迪皮斯·埃乌斯·沃鲁帕特,权贵们的行为,阻碍了新的生命之光的实现,阻碍了目标的实现? {/if} 我怎样才能做到这一

我试图用contenteditable=true copy替换div,然后在一次单击中关注第二个div


让我们聚焦=错误;
{#如果!专注}
{
专注=正确;
}}>
我的同僚们都是精英。选择权的责任,发明人阿迪皮斯·埃乌斯·沃鲁帕特,权贵们的行为,阻碍了新的生命之光的实现,阻碍了目标的实现?
{:else}
{
聚焦=假;
}}>
我的同僚们都是精英。选择权的责任,发明人阿迪皮斯·埃乌斯·沃鲁帕特,权贵们的行为,阻碍了新的生命之光的实现,阻碍了目标的实现?
{/if}


我怎样才能做到这一点呢?

我已经用这个函数解决了这个问题

  function getCaretIndex(element) {
    let position = 0;
    const isSupported = typeof window.getSelection !== "undefined";
    if (isSupported) {
      const selection = window.getSelection();
      if (selection.rangeCount !== 0) {
        const range = window.getSelection().getRangeAt(0);
        const preCaretRange = range.cloneRange();
        preCaretRange.selectNodeContents(element);
        preCaretRange.setEnd(range.endContainer, range.endOffset);
        position = preCaretRange.toString().length;
      }
    }
    return position;
  }

请去读一读。与您的问题相关的代码直接属于您的问题内部(以文本形式&格式正确;或者在有意义的情况下作为堆栈片段),而不仅仅是转储到外部平台上。@CBroe howbowdah您必须通过单击手动计算插入符号的位置。只要让它始终处于内容可编辑状态…@Akxe问题是
window.getSelection()
返回内部节点已破坏的范围对象:\n在您的位置上,我会一直使div
内容可编辑。可切换的好处是什么?