2

我试图允许用户编辑 contenteditable div,但我发现除非选择了一些文本,否则我不能使用 pasteHTML。

我认为 document.selection.createRange() 会返回一个有效的零长度选择(即一个位置),但可惜没有。

我真的很难找到任何不涉及 iframe 的解决方案(目前不是一个选项)。

欢迎任何建议/想法/问题。

4

2 回答 2

3

在从选择中创建之前,请确保焦点位于可编辑的 div 上TextRange

var div = document.getElementById("your_div");
div.focus();
document.selection.createRange().pasteHTML("<b>PASTED</b>");
于 2009-12-23T11:51:16.380 回答
0

您可以使用表单文本区域。这是简单且跨浏览器的,但不知道您的样式在多大程度上受到限制,或者使用表单或表单元素是否适合您的问题。

于 2009-12-23T11:34:32.077 回答