Xpoint
   [напомнить пароль]

IE "ест" часть html кода

Метки: [без меток]
2008-04-04 08:19:48 [обр] Leontiev DL[досье]
сообщение промодерировано

Здравствуйте.

Есть функция в JS:

handler()
{
   <somt code>

   new Ajax.Reques(url, {
   method:post
   onSuccess: function(transoprt) 
              {
                  var di = document.getElementById('scroller');
                  di.innerHTML = "";
                  di.innerHTML = transport.responseText;
               }
   );
}

В урле лежит еще 1 скрипт пхп, который создает строку вида:

"<tr>
     <td>
     </td>
     ....
  </tr>
  ....
"

Иными словами это есть таблица, которую надо бы вставить вот сюда.

    <div style="overflow:auto;position: relative; left:10px; padding:2pt; width:98%; height:560">
         <table width="100%"  height="100%" border="0">
             <div id="scroller"  height="100%">
                  
             </div>
         </table>
     </div>

FF, opera и еще пару браузеров, это отображаются как надо.
В ИЕ эксперементальным путем было обнаружено, что он съедает открывающиеся теги или вообще большую часть кода хтмл в сгенеренной строке. Возможно он их как бы и не ест, но точно не отображает ни при алерте, ни на месте, где должна появится табличка.
Еше вроде бы могут быть проблемы с верхним дивом: position: relative. (Правда если менять на абсолют результата тоже ни какого.)

Не работает только в ие (проверено в ие6, ие7)
ДУмается что надо как то сгенеренную строчку обработать для ИЕ. Но всемогущий гугле мне не помог :-(

ЗЫ. transport.responseText - точно не пустой, тоже проверено, в нем все как надо записано.

ЗЫЫ. я тут как бы новенький, и надеюсь, что тему разместил туда куда надо

спустя 3 часа 4 минуты [обр] Алексей В. Иванов(95/2861)[досье]
Внутри <table> нельзя вкладывать произвольные элементы, только tbody,thead,tfoot,tr. Выход: получайть код <table>...</table> с сервера целиком.
спустя 18 минут [обр] Leontiev DL[досье]
сообщение промодерировано
Я пробовал вставлять <table> </table> сразу в сгенеренный код. Результата тоже нет. Хотя, надо попробовать с position: absolute.
спустя 4 минуты [обр] Михаил(0/17)[досье]
Либо использовать DOM методы для добавления элементов. Но тут опять могут возникнуть проблемы с ИЕ, потому что стандартные методы appendChild и тд, для таблиц в ИЕ не поддерживаются.
И косяк ещё в ИЕ есть, если таблица без <tbody>, то онна не отображается, даже с помощью innerHTML.
спустя 6 минут [обр] Leontiev DL[досье]

> И косяк ещё в ИЕ есть, если таблица без <tbody>, то онна не отображается, даже с помощью innerHTML.
Насколько я знаю innerHTML нет для table в ИЕ. ;)

Исправил косяк:

  1. Вставил <table></table> в сгенеренный код.
  2. Поменял relative на absolute.

При том, что для фф достаточно было написать $('id_table').innerHTML и всё :-(
Сколько мучений...

Всем спасибо в общем. :-)

спустя 2 часа 13 минут [обр] Евгений Петров(76/1055)[досье]

Leontiev DL[досье]
У Вас реально такой код?

<table>
<div></div>
</table>
Насколько я знаю innerHTML нет для table в ИЕ. ;)

Откуда черпаем знания?

спустя 9 часов [обр] Илья Cтpeльцын aka SelenIT(12/171)[досье]
стандартные методы appendChild и тд, для таблиц в ИЕ не поддерживаются.
По моим данным это в корне не соответствует действительности :). Что они тормозят — это другой вопрос...
спустя 9 часов [обр] Leontiev DL[досье]

Евгений Петров:
Я бы и рад его поменять. Но переделывать несколько таблиц на дивы желания особого нет. Так что да. Реально такой код.
Буду рад, если разжуете что в нем фатального и на что его можно поменять. :-)

Про table.innerHTML, я не правильно выразился. Да он есть, но только read-only.(http://support.microsoft.com/kb/239832)

спустя 2 часа 54 минуты [обр] Евгений Петров(76/1055)[досье]
Leontiev DL[досье]
Если div лежит непосредственно внутри table, то это - грубейшая ошибка. Судя по первому посту, это так и есть.
спустя 1 час 43 минуты [обр] Leontiev DL[досье]
Хм...не эту ошибку я исправил.
Сейчас это выглядит так:
<div> <table></table> </div>
И всё стало отображаться.
Я думал, Вы говорите, что див в принципе в таблице не есть очень хорошо...
Powered by POEM™ Engine Copyright © 2002-2005