В 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, время: 00:44. |