• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Пустые строки при построении отчета под web

  • Автор темы deeeman
  • Дата начала
D

deeeman

Привет!

есть форма, на которой есть рич текст поле, в которое сваливается инфо при открытии формы на QOpen для распарсивания и построения под web. Все было хорошо до тех пор пока у мелкомягкого не вышло очередное обновление под ie8.
Теперь при отображении строк отчета появились пустые строки.

Имеем корпоративный стандарт ie8 (никак не обновить до след версии)
Отчет строиться на js обычными тэгами table tr td
строка формируется так:

Код:
 tBodyAll += "<tr depth=1 bgcolor=#EFEFEF style=\"font-weight:bold\"  align=middle><td> </td><td align=left colspan=3><a href=\"javascript://\" onClick=\"showHideRows(this)\">" + aeLast + "</a><DIV style='float: left; width:250px; height:1px; overflow:hidden;'> </DIV></td>" + tBody01 + "</tr>"

подкатегория строки так:

Код:
agEntry00 = "<tr depth=2 bgcolor=#EFEFEF style=\"font-weight:bold;display:none\"  align=middle><td class='c1'> </td><td class='c2' style='display: none;'> </td><td  class='c3'  style='padding: 0px 0px 0px 15px;' align=left colspan=3><a style='display: block; border-left: 2px solid white; padding: 2px 0px 2px 4px;' href=\"javascript://\" onClick=\"showHideRows(this)\">" + ae1 + "</a><DIV style='float: left; width:250px; height:1px; overflow:hidden;'> </DIV></td>"

отличаются только параметром depth
строка по умолчанию свернута,при нажатии на ссылку в первой ячейке строки она раскрывает подкатегории функцией showHideRows:

Код:
function showHideRows(obj){
var tr = obj.parentNode.parentNode //получаем объект строки (tr)
var table = tr.parentNode //получаем объект таблицы
var row
var i=0
var depth = parseInt(tr.depth)
var nextdepth = parseInt(depth) + 1
  
for(i = (tr.rowIndex+1); i < table.rows.length; i++){
curRow = table.rows[i]
 
if(curRow.depth && curRow.depth > depth){
if(curRow.depth == nextdepth){
curRow.style.display = (curRow.style.display != "none")? "none":"" //меняем статус ниже лежащей строки
}
else{
curRow.style.display = "none" //все остальные строки (которые еще глубже) скрываем
}
}
else{ //если встретили строку, с глубиной равной кликнутой, то прекращаем обработку - т.к. она не внутри нашей категории
break
}
}
}

Так вот, при построении отчета сразу же вылазиют пустые строки.
Воспроизводиться под последней версией ie8
на старой версии ie8 все ок.
на 10 ок
на 11 в режиме совместимости так же видно проблему.

Подскажите, что с функцией showHideRows не так может быть?
а может в другом косяг?
 

rinsk

Lotus Team
12.11.2009
1 151
125
BIT
2
Веткой ошиблись? )
а по вопросу - применяйте теги совместимости - всегда в ИЕ
 
D

deeeman

не ошибся это лотусовый вэб ))
прошу перенести ветку в актуальный раздел

не понял про метки, что для каждого браузера свой скрипт писать?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 927
608
BIT
150
вот потому предпочитают, во многих случаях, фрэймворки, а не собственные велики ;)
 
Последнее редактирование модератором:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!