В contenteditable появляется br
Если ввести текст, а потом выделить его и удалить в диве появляется br. Баг или фича? Мешает т.к. я просто вставляю смайлы через .innerHTML+= и смайл появляется после перевода строки. Нашёл как вставлять через execCommand, но всё равно интересно почему появляется этот бр -_-
Пробовал на лисе и сафари http://jsfiddle.net/nvTky/ <html> <body> <div id="mess" style="height:40px;border:1px solid red" contenteditable="true"></div> <input value="alert" onclick="alert(document.getElementById('mess').innerHTML);" type="button"> </body> </html> |
Если я правильно понял то BR появляется если из строки удаляется все содержимое но сама строка остается, в принципе это логично.
|
Поигрался в хроме. Да, действительно, появляется BR, но не всегда :)
Вот это уж точно не логично). Вообще, с contenteditable все довольно плохо, не советую полагаться на логику браузера. |
Совсем не логично, т.к. изначально никакого бр нет и ентер не нажимался. Да, печально что такой хороший wsiwyg инструмент не приводят в порядок и приходится всё через какие-то exec костыли делать.
|
по-моему всё логично, каждая строка в div contenteditable="true" - это div, для того, чтобы пустой div не схлопывался, добавляется br (так сделали)
приведи пример, где тебе мешает этот br <style> div { border: solid 1px; margin: 1em; } </style> <div></div> <div style="height: 1em;"></div> <div><br/></div> <div contenteditable="true" oninput="console.log(this.tagName + '1: ' + this.innerHTML)"></div> <div contenteditable="true" oninput="console.log(this.tagName + '2: ' + this.innerHTML);"></div> <button onclick="var p = this.previousElementSibling; p.innerHTML += '<img src=\'http://javascript.ru/forum/image.php?u=19820&dateline=1334914235\'/>'; console.log(p.innerHTML)">click</button> |
Часовой пояс GMT +3, время: 06:20. |