我怎样才能获得元素CONTENTEDITABLE使用时插入符是使用JavaScript,?(How

2019-06-17 18:28发布

比方说,我有一些HTML代码是这样的:

<body contentEditable="true">
   <h1>Some heading text here</h1>
   <p>Some text here</p>
</body>

现在,插入符号(闪烁的光标)H1元素里面闪烁,让我们在“标题”字说。 我怎样才能插入符号与JavaScript中的元素的名称? 在这里,我想获得“H1”。

这需要工作只能在WebKit的(它嵌入到应用程序)。 它最好也应为工作选择。

Answer 1:

首先,想想为什么你这样做。 如果你想从编辑某些元素阻止用户,只需设置contenteditable假的那些元素。

然而,这是可以做到你的要求。 下面的代码在Safari 4中,并且将返回(用户开始选择 ,选择“反向”将返回结束,而不是开始即)选择在锚节点-如果你想要的元素类型为字符串,刚拿到nodeName返回节点的属性。 这适用于零长度的选择,以及(即只需插入位置)。

function getSelectionStart() {
   var node = document.getSelection().anchorNode;
   return (node.nodeType == 3 ? node.parentNode : node);
}


文章来源: How can I get the element the caret is in with Javascript, when using contentEditable?