2011-10-08 31 views
6

沒有人知道如何強制contenteditable div的內容做一個div或p包圍嗎?如果contenteditable的內容是一個空的div,例如在Firefox上選擇一個範圍,但在chrome上插入文本。我需要的文本強制contenteditable內容div或p

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某種程度上可能,可這也用於手動插入新行,以確保永遠不會得到< BR/>標籤,而不是一個新的div或p?

感謝

更新

這似乎在一定程度以下工作:

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

通過附加< BR/>火狐,Chrome,Safari瀏覽器都產生一個單一的空行所有輸入都在div內部結束,但Internet Explorer(測試版本9)顯示兩個空行。如果沒有其他解決方案可用 - 任何想法如何解決這個問題,而不使用瀏覽器檢測?

+0

我一直在尋找這個問題的答案,一個月以上,以解決一些仍然在Firefox中的錯誤。你需要你的幫助。 –

回答

0

您可以在您的css文件中覆蓋br標記。

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

我不太確定em能工作。如果沒有,你也必須嘗試px格式。

相關問題