使用以下 XHTML 代码...
<div contenteditable="true">
<img alt="" src="1.png" />
</div>
...如果用户在图像元素(anchorNode 或 focusNode)之后有键盘插入符,我想使用 W3C 标准方法,例如 appendChild 或 insertBefore 来插入新的图像元素。
我尝试了以下方法来确定 DOM 中的位置...
alert(
'focusNode = '+window.getSelection().focusNode
+'\n\npreviousSibling = '+window.getSelection().focusNode.previousSibling
+'\n\nnextSibling = '+window.getSelection().focusNode.nextSibling
+'\n\nparentNode = '+window.getSelection().focusNode.parentNode);
try
{
alert(
'focusNode = '+window.getSelection().focusNode
+'\n\n.previousSibling.previousSibling = '+window.getSelection().focusNode.previousSibling.previousSibling
+'\n\n.nextSibling.nextSibling = '+window.getSelection().focusNode.nextSibling.nextSibling
+'\n\nparentNode = '+window.getSelection().focusNode.parentNode);
} catch (err) {}
alert(
'anchorNode = '+window.getSelection().anchorNode
+'\n\npreviousSibling = '+window.getSelection().anchorNode.previousSibling
+'\n\nnextSibling = '+window.getSelection().anchorNode.nextSibling
+'\n\nparentNode = '+window.getSelection().anchorNode.parentNode);
try
{
alert(
'anchorNode = '+window.getSelection().anchorNode
+'\n\n.previousSibling.previousSibling = '+window.getSelection().anchorNode.previousSibling.previousSibling
+'\n\n.nextSibling.nextSibling = '+window.getSelection().anchorNode.nextSibling.nextSibling
+'\n\nparentNode = '+window.getSelection().anchorNode.parentNode);
} catch (err) {}
我也试过这个,它只是告诉我有多少空白字符(断线)......
alert(window.getSelection().anchorOffset+'\n\n'+window.getSelection().focusOffset);
我无法确定如何直接在键盘插入符号旁边找到图像。
我的目标是仅使用 W3C 方法和属性来做到这一点......
1.) 不使用专有的微软内部---任何方法。
2.) 不使用框架,不仅仅是因为它们使用了内部——任何方法。
3.)我正在尝试确定图像元素是否就在插入符号旁边,如果它是文本,那么这是一个不同的条件(只需提及 {alert('in or next to text');})。