PDA

Просмотр полной версии : Куда деваются пробелы в html?


v350
26.10.2004, 22:16
Друзья, подскажите пожалуйста, куда деваются пробелы между тегами html? Т.е. пишу:

this.createTextField("txt", 1, 100, 100, 300, 100);
this.txt.html = true;
this.txt.htmlText = "Обычный <B>Болд</B> <I>Италик</I>";

Выводит:

Обычный БолдИталик

sergwizard
26.10.2004, 23:34
Туда же, куда и дырка от бублика, после того, как его съели.
Пробелы надо ставить не между тегами, а между словами. Вот так:
this.txt.htmlText = "Обычный <B>Болд</B><I> Италик</I>";

styx
26.10.2004, 23:53
Ответ неверен. Если это правда так (проверять лень) - это баг парсера.

v350
27.10.2004, 00:08
sergwizard , спасибо конечно...! ;)

А может мысль подкинешь тогда, как быть ежели у меня есть текстовое поле ввода (input), с включенным html и форматированием с помощью класса TextFormat. Так вот это поле содержит в свойстве htmlText собственно html, размеченный Flash'ем именно по таким правилам, как я указал - пробелы остаются между тэгами (так сам Flash делает). Мне необходимо после небольшего преобразования строки полученной из htmlText поля ввода, отобразить результат в другом поле.

А пробелов то олучается теперь нет... :confused:


Если не понятно объяснил, приложу исходник.

v350
27.10.2004, 00:14
styx , вот и мне тоже так кажется...

А что тут проверять - вставь и посмотри...


this.createTextField("txt", 1, 100, 100, 300, 100);
this.txt.html = true;
this.txt.htmlText = "Обычный <B>Болд</B> <I>Италик</I>";

sergwizard
27.10.2004, 00:36
2 styx странно: проверить ты ленишься, а вот постить чушь - не ленишься. :D
v350 Непонятно, выкладывай исходник.

Visor
27.10.2004, 01:53
А почему бы не использовать &ampnbsp
По-моему должно без проблем работать. Или использовать &ampnbsp беспонтово? :)

v350
29.10.2004, 00:54
остановился на использовании nbsp

sergwizard
29.10.2004, 01:27
Или я чего-то не понимаю, или здесь гонят... Очень бы хотел увидеть, как во флэше можно использовать &nbsр.
Ты можешь выложить свой исходник, или это военная тайна?

ccwds
29.10.2004, 13:51
Речь идет о когда русский текст с include font outlines или нет?
Если да, то надо включать не только Сyrillic символы в MX2004, но и знаки пунктуации. Ну или хотя бы шмякнуть по пробелы в окошке ввода особых знаков. Тогда пробелы появятся. :)

kpa.person
31.10.2004, 20:38
Я скорее всего, сегодня сильно заработался и
поэтому плохо соображаю, но если нужно чтобы
получалась строка с пробелом между словами
"Болд" и "Италик", то почему не добавить пробел
прямо в содержимое тега, например в конце слова
"Болд"...

Штрек
31.10.2004, 23:09
Оригинал написал(а) sergwizard
Или я чего-то не понимаю, или здесь гонят... Очень бы хотел увидеть, как во флэше можно использовать &nbsр.
Ты можешь выложить свой исходник, или это военная тайна?
Гонят, гонят...
Из ничего сделали прям некое обсуждение...
Флэш читает пробелы на раз, более того,
в отличии от html лишние пробелы не отбрасывает
/вот там то использование
&nbsp&nbsp оправдано/. Даже если этот тег вывернуть наизнанку и поставить ра.ом флэш его не прочитает
как тег пробела...

sergwizard
01.11.2004, 02:15
И, что самое интересное, Михалыч, - кто-то, даже заработавшийся и, по его словам, "плохо соображающий", запросто говорит здравые вещи. А другие - высосут из пальца проблему, вбросят ее на форум, пукнут в сухую лужу – и пропадают. Ребята (обращаюсь к пукнувшим v350 и styx), я, как мог, отвечал на ваши вопросы. Ну, просто, из вежливости, ответьте на мой. v350, покажи исходник, который озадачил тебя. И покажи способ, которым ты решил проблему. Интересно же….

llllllllll
01.11.2004, 03:45
Вообще-то мне тоже кажется что это фигня какаята :)


createTextField("_txt", 1, 100, 100, 300, 100);
_txt.html = true;

А теперь четыре комбинации:

_txt.condenseWhite = false;
_txt.htmlText = "<i>I</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>B</b>";

_txt.condenseWhite = true;
_txt.htmlText = "<i>I</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>B</b>";

_txt.condenseWhite = false;
_txt.htmlText = "<i>I</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>B</b>";

_txt.condenseWhite = true;
_txt.htmlText = "<i>I</i>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>B</b>";


- это нормально? :)

А что касается &amp;nbsp; так флеш хавает их, во всяком случае MX2004, так же как и &amp;amp;, &amp;quot; и т д ...

_txt.htmlText = "<i>I</i>&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; <b>B</b>";

sergwizard
01.11.2004, 05:20
Привет, Клетчатый, рад тебя слышать. :)
Прочти еще раз первый пост v350. Парень не понимает, почему у него получается такая хрень: Обычный БолдИталик, и как с этим бороться.
Я ему ответил. Ответил именно на этот вопрос, и именно так, как он был поставлен. Для получения пробелов, ставь пробелы не между тегами, а внутри их. Только по тому, что во флэше по умолчанию выставлено condenseWhite=false. Что может быть легче? Но последовали возражения. И второй пост v350 вверг меня в недоумение. Особенно это: "Мне необходимо после небольшого преобразования строки полученной из htmlText поля ввода, отобразить результат в другом поле." Мне стало интересно, что и как вводится в это поле? Я попросил исходник. Ничего не получил.
Влез ленивый styx, который не понимает разницу между html-парсером Flash и html-парсером браузера. В частности, что у браузера по умолчанию стоит condenseWhite=true, а у флэша – false. Он это просто обозвал багом. Я завелся. Еще больше я завелся, когда v350 отписался тем, что решил использовать &nbsр; И это " после небольшего преобразования ". Вот скажи, зачем использовать лишнее, если можно использовать достаточное? И что это за преобразования? Покажи…. В ответ – тишина.
И почему люди, ждущие ответы на свои вопросы, сами не хотят ответить на вопросы к ним?

v350
02.11.2004, 15:35
Уважаемый sergwizard, зачем же так? Пукнул в лужу, не пукнул в лужу... Моя ошибка только в том, что не успел вовремя выложить исходник - пойми, не все могут 24 часа на форуме сидеть :-). Прежде чем задать вопрос, я все же немного поразмыслил над ним самостоятельно, и соответственно получив очевидный ответ с nbps, посчитал его вполне удобным и более того, вероятно, единственно возможным.

Исходник приложен - это фрагмент, вырванный из контекста приложения, подобного чату. Набей 2 слова разделенных только лишь(!) пробелом, затем выдели каждое(не выделяя пробел) и сделай их жирным и наклонным - нажми "Результат".
HTML-строка результата должна быть отражена в поле вывода сообщения - как видишь, пробела нет.
Втиснуть же пробел в тэг (если он не выделен), как ты понимаешь - я не могу.

sergwizard
02.11.2004, 22:40
Уважаемый v350, извини за излишнюю резкость, - со мной это бывает, когда мне кажется, что задавший вопрос - не особенно заинтересован в ответе. Ну да ладно. :)
Попробуй это. Правильно ли я понял проблему?

Штрек
02.11.2004, 23:26
"...Очень, оч-чень приятно видеть
таких молодых людей, как вы, которые, держась за
руки, идут к достижению вечных идеалов. Очень, оч-чень
приятно..."
И.И. Е.П.

v350
03.11.2004, 10:12
sergwizard , лично я тебя понимаю, и крайне ценю твое желание уделить часть своего времени и помочь. Спасибо!

Проблему понял правильно, но в таком виде несколько криво получается - выделяется всегда на один символ больше, это не хорошо.
Дело в том, что html-код строки в моем случае отправляется серверному сценарию (а затем возвращается и выводится в окне сообщения), и соответственно добавить nbps в нужном месте не представляет труда.