繁体   English   中英

如何专注于 <p> 在内容可编辑的div中

[英]How to focus on <p> in contenteditable div

我正在使用contenteditable div来进行丰富的编辑。 我现在的问题是,在嵌入Instagram框架后,我无法立即将插入符放置在<p>上。 我尝试的是在嵌入Instagram框架后创建新的<p>并专注于此。 但这是行不通的。

有人知道这个问题的解决方案吗?

我以JSFiddle为例 (我将嵌入代码之一放在CSS块中)

尽管contenteditable 规范指出应该可以将光标放置在一个空的p标签中,如下所示:

<div>aaa<p>|</p>bbb</div>

Webkit (Safari)和Blink (Chrome)当前不支持。 更多信息在这里

幸运的是,有一个相对简单的解决方法。 我们只需要在p标签内获取一些内容,就可以将光标放在此处。 一种选择是附加一个包含零宽度空格的textnode。 这种方法有时对于涉及内联标签的情况很有用。

对于您而言,最有效的解决方案是将换行符简单地添加到段落中。 可内容编辑的实现通常将块标记内的换行符视为“临时保持节点”,并且在主要浏览器中的默认处理相同。 初始结果应如下所示:

<div>aaa<p>|<br></p>bbb</div>

并且,一旦您开始键入,BR将被替换(浏览器会自动执行此操作):

<div>aaa<p>inner text|</p>bbb</div>

即使删除内部文本,浏览器也应自动重新插入换行符,这样您始终可以将光标移回内部。

我在这里用示例分叉并更新了您的jsfiddle。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM