Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.09.2013, 15:20
Аватар для FreeStyler
Аспирант
Отправить личное сообщение для FreeStyler Посмотреть профиль Найти все сообщения от FreeStyler
 
Регистрация: 13.09.2009
Сообщений: 52

В 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>

Последний раз редактировалось FreeStyler, 14.09.2013 в 15:23.
Ответить с цитированием
  #2 (permalink)  
Старый 14.09.2013, 21:23
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Если я правильно понял то BR появляется если из строки удаляется все содержимое но сама строка остается, в принципе это логично.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
  #3 (permalink)  
Старый 15.09.2013, 04:37
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Поигрался в хроме. Да, действительно, появляется BR, но не всегда
Вот это уж точно не логично). Вообще, с contenteditable все довольно плохо, не советую полагаться на логику браузера.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 15.09.2013, 07:52
Аватар для FreeStyler
Аспирант
Отправить личное сообщение для FreeStyler Посмотреть профиль Найти все сообщения от FreeStyler
 
Регистрация: 13.09.2009
Сообщений: 52

Совсем не логично, т.к. изначально никакого бр нет и ентер не нажимался. Да, печально что такой хороший wsiwyg инструмент не приводят в порядок и приходится всё через какие-то exec костыли делать.
Ответить с цитированием
  #5 (permalink)  
Старый 15.09.2013, 10:50
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

по-моему всё логично, каждая строка в 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>

Последний раз редактировалось bes, 15.09.2013 в 10:53.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
После события появляется элемент и остается november Общие вопросы Javascript 6 02.08.2013 19:35
div с contenteditable и focus only_dimon jQuery 0 10.09.2012 21:59
contentEditable — FAQ или очень простое руководство InetBUG Events/DOM/Window 1 16.02.2011 03:11
скролл для длинного текста не появляется... dschmitz (X)HTML/CSS 6 27.11.2010 02:34
first-letter и contenteditable SilentImp Общие вопросы Javascript 11 16.10.2010 15:46