Перевод строки в IFrame designmode=on

Tn

Guest
Перевод строки в IFrame designmode=on

Используя эту приятную функцию iframe, при редактировании текста после перевода строки (по нажатию <enter>), блок текста обрамляется тэгами <p> </p>. Что не совсем удобно, т.к. они обозначают новый обзац - пропущеную пустую строку перед следующим предложением.
Можно ли как-то переопределить эту функцию перевода строки, чтобы туда вставлялось <br> (или на <span>) ?

Я понимаю, что спомощью атрибутов тэга <p> легко задается форматирование текста, например выронять по центру или с правого края. Мне это не нужно особо, хотя ведь это все можно реализовать спомощью <span>.
На данный момент, я перед сохранением в БД просто заменяю в выходящем HTML тексте "<p " на "<span " (и соответственно "</p>" на "</span>"). Однако это не совсем понятно пользователю, т.к. при редактировании он четко видит как после нажатия <enter> у него появляется два перевода строки (вместо желаемого одного).

Буду благодарен предложенным вариантам решения, или указанию на возможные мои недопонимания в этой технике редакторов WYSIWYG (т.к. я с ней разбираюсь пока только второй день).
 

Кром

Новичок
Tn
По твоему, какое отношение мы имеем к редактору WYSIWYG, которым ты пользуешся?
 

Tn

Guest
Я не пользуюсь, я как бы его пишу. И все редакторы написаны с использованием одних и тех же функций JS, к ним то, наверно, вы имеете какое-то отношение... (например, http://www.axios-it.com.au/index.asp )

Все редакторы, что я смотрел при переводе строки обрамляют текст <p> ... </p>. Я думаю, кто их уже использовал или писал с нуля, сталкивался с этой проблемой.
 

Кром

Новичок
>Все редакторы, что я смотрел при переводе строки обрамляют текст <p> ... </p>. Я думаю, кто их уже использовал или писал с нуля, сталкивался с этой проблемой.

Tn
Это не проблема. Так на перевод строки реагирует броузер, и правильно делает. Для web'а лучше работать с параграфом. Для него можно задать стиль уже при выводе, в том числе отступы и растояние между параграфами.
 

Tn

Guest
MiRacle: Спасибо, не знал про shift-enter

Kpoм: да, я это прекрасно понимаю. Но в HTML'e обойтись без <br>'ов трудновато :)

Сейчас буду разбираться можно ли и как переопределить атрибуты тэгов спомощью Format..
 

VaDima

Guest
Первое, что хочется сказать, это RTFM, второе - STFW (google:mshtml, edit html etc), но я этого не скажу - мы ведь интеллигентные люди.

Если второй день, то стоит почитать МЗДН:
\inet.chm::/workshop/browser/editing/mshtmleditor.htm

А вообще-то:

1. Это все более менее работает токмо на IE5.5+. В спецификации 4-ки все описано, но далеко не все работает.

2. Результат в виде сгенерированных буков ХТМЛ весьма зависит от версии и даже билда MSHTML.DLL

3. Уже написано много вордов, хороших и разных. Взять хотя бы творения www.editlet.com или www.pintexx.com. Стоит ли работать на свечи от геморроя?

4. Обрамляют тегами <П> не редакторы, а все тот же MSHTML.DLL

5. я срываю <П>, когда надо, хирургически, например, так:

var str="";
var ps=твой_элемент_being_edited.document.body.all.tags("P");
if(ps.length> 0)
for(var i=ps.length-1;i>=0;i--)str=ps.innerHTML+"\n"+str;
else
str=твой_элемент_being_edited.document.body.innerHTML;
return str;
 
Сверху