Принудително редактируемото съдържание да бъде вътре в div или p

някой знае ли как да принуди съдържанието на 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, може ли това да се използва и за ръчно вмъкване на нови редове, за да сте сигурни, че никога няма да получите тагове ‹br/› вместо нов div или p?

Благодаря

Актуализация

Изглежда, че следното работи до известна степен:

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

С допълнителните ‹br/› Firefox, Chrome, Safari генерират един празен ред, където всички въведени данни завършват вътре в div, но Internet Explorer (тествана версия 9) показва два празни реда. Ако няма друго налично решение - някакви идеи как да поправя това, без да използвам откриване на браузър?


person Fionn    schedule 08.10.2011    source източник
comment
Търся отговор на това повече от месец, за да коригирам куп грешки, които все още съществуват във Firefox. Thx u thx u thx u.   -  person Ash Blue    schedule 27.04.2014


Отговори (1)


Можете да замените маркера br във вашия css файл.

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

Не съм съвсем сигурен дали em ще работи. Ако не, ще трябва да опитате и формат px.

person Umur Kontacı    schedule 12.10.2011