put_innerText убивает стили елемента???
От: gis Украина  
Дата: 08.12.04 20:09
Оценка:
Всем привет! Столкнулся с одной проблемой. Помогите плиз

У меня есть хтмл один из участков кода которого привожу:

<td id="MyID" noWrap>
<font face="verdana, helvetica, Arial" color="black" size="1">{{{STRING_FOR_CHANGE}}}</font>
</td>


мне в этом хтмл документе нужно заменить эту строку: {{{STRING_FOR_CHANGE}}}

делаю я это следующим образом:
нахожу елемент по айдишнику MyID и заменяю текст:


      pElement->get_innerHTML(&bstrInnerSA); //для проверки
      pElement->put_innerText(CComBSTR("New String"));
      pElement->get_innerHTML(&bstrInnerSA); //для проверки


После этого в документе появляется "New String" но все стили этого елемента слетают! =(
соответственно те ф-ии get_innerHTML, которые я поставил для проверки выдают разные хтмли этого елемента:
в первом случае правильный со стилями а во втором — никаких стилей только лишь "New String"
насколько я понимаю put_innerText не должен сбивать стили елемента?


В чем моя ошибка подскажите плиз. Сам я не могу найти ее — я в этой области новичок..

Заранее благодарен, всем успехов!
best regards, Ivan
Re: put_innerText убивает стили елемента???
От: nii_im_b Мухосранск  
Дата: 09.12.04 07:21
Оценка:
Здравствуйте, gis, Вы писали:

gis>Всем привет! Столкнулся с одной проблемой. Помогите плиз


gis>У меня есть хтмл один из участков кода которого привожу:


gis>
gis><td id="MyID" noWrap>
gis><font face="verdana, helvetica, Arial" color="black" size="1">{{{STRING_FOR_CHANGE}}}</font>
gis></td>
gis>


gis>мне в этом хтмл документе нужно заменить эту строку: {{{STRING_FOR_CHANGE}}}


gis>делаю я это следующим образом:

gis>нахожу елемент по айдишнику MyID и заменяю текст:

gis>

gis>      pElement->get_innerHTML(&bstrInnerSA); //для проверки
gis>      pElement->put_innerText(CComBSTR("New String"));
gis>      pElement->get_innerHTML(&bstrInnerSA); //для проверки
gis>


gis>После этого в документе появляется "New String" но все стили этого елемента слетают! =(

gis>соответственно те ф-ии get_innerHTML, которые я поставил для проверки выдают разные хтмли этого елемента:
gis>в первом случае правильный со стилями а во втором — никаких стилей только лишь "New String"
gis>насколько я понимаю put_innerText не должен сбивать стили елемента?


gis>В чем моя ошибка подскажите плиз. Сам я не могу найти ее — я в этой области новичок..


gis>Заранее благодарен, всем успехов!


что самое грустное — это так и должно быть. put_innerText убивает всё между задаными тегами. как вариант пользовать put_innerХТМЛ.
Re[2]: put_innerText убивает стили елемента???
От: gis Украина  
Дата: 09.12.04 13:13
Оценка:
Спасибо!

А почему же тогда get_innerText возвращает только текст, без хтмл тегов? по логиге put_innerText также не должен трогать теги..
best regards, Ivan
Re[3]: put_innerText убивает стили елемента???
От: nii_im_b Мухосранск  
Дата: 09.12.04 13:49
Оценка:
Здравствуйте, gis, Вы писали:

gis>Спасибо!


gis>А почему же тогда get_innerText возвращает только текст, без хтмл тегов? по логиге put_innerText также не должен трогать теги..


есть <TD id = value><font>text</font></TD>
в случае get_innerText он берёт то что между тегами. а когда идёт put_innerText
<TD id = value>put_text<font>text</font></TD>...
если между <font></font> ничего нет — он просто убивает фонт (почему? не знаю...).
Re[4]: put_innerText убивает стили елемента???
От: Кодёнок  
Дата: 16.12.04 08:47
Оценка:
__>есть <TD id = value><font>text</font></TD>
__>в случае get_innerText он берёт то что между тегами. а когда идёт put_innerText
__><TD id = value>put_text<font>text</font></TD>...
__>если между <font></font> ничего нет — он просто убивает фонт (почему? не знаю...).

Так и должно быть Что непонятно-то?

<TD> TD After Begin <FONT> inside font </FONT> TD before end </TD>

>>> print elem.innerText
"TD After Begin inside font TD before end"

>>> elem.innerText = "a b c"
<TD>a b c</TD>


А куда он по-твоему должен запихать "a b c"? Внутрь <FONT>? Или до него? Или после? Или "а" до, "b" внутрь и "c" после? . А если там 8 мегабайт сложного html-текста внутри с параграфами, таблицами, картинками и разными цветами — в какой из 400000 внутренних тэгов этот текст надо положить?

Вообщем, все очень логично. Никаких стилей никуда не слетает. В данном случае тебе надо либо перенести стили в <TD style class id> в виде CSS, либо устанавливать innerText элементу FONT, а не TD.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.