强制可信内容在div或p内

时间:2011-10-08 00:08:53

标签: html contenteditable editing

有没有人知道如何强制一个contenteditable div的内容被div或p包围?如果contenteditable的内容是一个空div - 选择一个范围可以在Firefox上工作,例如在chrome上,文本将插入div之前。我需要文字

HTML:
<div id="edit" contenteditable="true"><div id="insert"></div></div>

Tried this but the results are very inconsistent cross browser:

var range = document.createRange();
range.selectNodeContents(document.getElementById('insert'));

var selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);

这里的第二个问题是,如果这对于一个空的contentEditable来说是某种可能的话,这是否也可以用于手动插入换行符以确保永远不会得到&lt; br /&gt;标签而不是新的div或p?

由于

更新

以下似乎有以下作用:

<div id="edit" contenteditable="true"><div id="insert"><br/></div></div>

附加&lt; br /&gt; Firefox,Chrome,Safari都生成一个空行,其中所有输入都在div内部结束,但Internet Explorer(测试版本9)显示两个空行。如果没有其他可用的解决方案 - 任何想法如何在不使用浏览器检测的情况下解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以覆盖css文件中的br标记。

br {
    display:block;
    clear: both;
    height: 1em;
    line-height: 1em;
}

我不确定em是否可行。如果没有,您还必须尝试px格式。