Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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 内容编辑<;代码>;无缘无故产生的_Javascript_Contenteditable - Fatal编程技术网

Javascript 内容编辑<;代码>;无缘无故产生的

Javascript 内容编辑<;代码>;无缘无故产生的,javascript,contenteditable,Javascript,Contenteditable,我正在开发一个块删除程序(按backspace删除块) 在我的代码中,有一个包含的块。当我想要移除标记时,我会拾取里面的所有内容,并将其放置在DOM之外的节点中 var replacementTag = document.createElement('p'); while(block.firstChild){ replacement.appendChild(codeTag.firstChild); } cod

我正在开发一个块删除程序(按backspace删除块)

在我的代码中,有一个包含
的块。当我想要移除标记时,我会拾取里面的所有内容,并将其放置在DOM之外的节点中

        var replacementTag = document.createElement('p');
        while(block.firstChild){
            replacement.appendChild(codeTag.firstChild);
        }
        codeParent.parentNode.replaceChild(replacementTag, codeParent);
这样做之后。一切似乎都很好。如果我使用DOM检查器,则会有
标记,其中包含
标记的容器(codeOwner,内有
标记)。
但是
如果我键入任何内容,则我刚刚创建的
标记中的
标记将恢复生命(浏览器将重新生成它)。我不想那样。我不希望
标记返回,除非我告诉浏览器我想返回

我怎样才能做到这一点

我在Chrome上看到过这一点,虽然我不完全确定如何复制它,但在firefox中复制它似乎很容易

使用firefox v.39进行测试是最简单的

要测试:

  • 跟随链接
  • 等待一些启动执行运行(大约1.5秒)
  • 按backspace 2x(第一个删除TextNode,第二个命令js删除周围的html)
  • 打字

  • 您刚才键入的内容现在已被
    标记包围,而只应生成包含刚输入信息的TextNode或Outline。

    您正在将块的第一个子节点添加到另一个节点。是否不必先将其与父块分离?@LittleSanti如果将节点插入DOM树,则其他节点DOM中该节点的r实例不再存在(也就是说)。在任何时候,DOM中只能有1或0个DOM节点的表示0。如果将同一个节点添加到DOM中两次,则只有第二次添加会反映到某些内容中。明白我的意思吗?是的,我知道。我只是在想,尽管一个节点只能有一个父节点,但有可能多个节点将同一个节点作为子节点最近(由于DOM实现中的一些错误)。在更改其父节点之前,我会首先尝试将其删除。@LittleSanti是否这样?是的,这是我的建议。您正在将块的第一个子节点添加到另一个节点。是否不必首先将它们从其父块中分离?@LittleSanti如果将一个节点插入到DOM树中,则该节点在DOM中的另一个实例将不再存在(可以这么说)。在任何时候,DOM中只能有1或0个DOM节点的表示0。如果将同一个节点添加到DOM中两次,则只有第二次添加会反映到某些内容中。明白我的意思吗?是的,我知道。我只是在想,尽管一个节点只能有一个父节点,但有可能多个节点将同一个节点作为子节点neously(由于DOM实现中的一些错误)。在更改其父级之前,我会首先尝试删除它。@LittleSanti喜欢这样吗?是的,这是我的建议。