我正则不熟 只能到这程度<div contentEditable id=div onkeyup="edit(this.innerHTML)">edit</div>
<div id=r ></div>
<input type="button" value="查看代码" onclick="alert(document.getElementById('div').innerHTML)">
<SCRIPT LANGUAGE="JavaScript">
function edit(html)
{
html = html.replace(/<P>/g,"");
html = html.replace(/<\/P>/g,"<br/>");
document.getElementById('div').innerHTML=html;
}
</SCRIPT>

解决方案 »

  1.   

    我觉得你的需求可能不是P的问题,是不是觉得中间间隔太宽了,可以用下面的代码<div contentEditable id=div onkeydown="edit(this.innerHTML)">edit</div>
    <div id=r ></div>
    <input type="button" value="查看代码" onclick="alert(document.getElementById('div').innerHTML)">
    <SCRIPT LANGUAGE="JavaScript">
    function edit(html)
    {
    if(event.keyCode==13){
           var   textRange=document.selection.createRange();   
          textRange.text="\r\n";   
          textRange.select();   
          event.returnValue=false;
        }
    }
    </SCRIPT>
      

  2.   

    查询是否是回车的keyCode,再作相应处理
      

  3.   

    DIV 可编辑状态存在兼容问题用 iframe, 然后监听 document.onkeypress, 如果是回车, 插入 br, 然后返回 false
      

  4.   

    ...应该是 shift + enter
      

  5.   

    解决方案很简单,设置这个div里的p标签的margin为0
    这样,就可以解决回车换行时,两行相隔很远.而不用将<p>替换为<br/>