прототип.js-элемент.вставка (элемент) игнорируется в IE 6?


Я использую IE 6 (корпоративная мандатная версия) на XP, а также (в первую очередь) Firefox 3. В них я создаю таблицу DHTML, используя прототип.библиотека js версии 1.6.0.3.

У меня есть javascript-код обработчика событий для добавления строки в таблицу, который прекрасно работает в Firefox, но полностью игнорируется в Internet Explorer. Я могу пройти через код в MS "script debugger" (да, я знаю, что он старый и устаревший, но он был доступен), поэтому я знаю, что событие выполняется зацепившийся.

Код имеет вид:

var xTable = $( 'x_list')  // id of x...
var aRow = new Element( 'tr')
aRow.setAttribute( 'id', id)
. . .
var xEl = new Element( 'td')
. . .
aRow.insert( xEl)
. . .
// alert( aRow.inspect() )
// alert( xTable.inspect() )
debugger  // check insert() implementation under IE
xTable.insert( aRow)

Кто-нибудь еще имел опыт конфликтов между элементами.insert () и Explorer?

3 3

3 ответа:

Вы должны вставить новые элементы TR в тело, а не непосредственно в таблицу. В противном случае IE не будет показывать / вставлять / что бы это ни было.

Попробуйте создать элемент <tbody> внутри <table>, с которым вы работаете, а затем добавить к этому элементу вместо <table>.

Это первое, что я бы попробовал. Я смутно помню, что манипуляции Javascript с таблицами были странными, если не было элемента <tbody>.

Slosd ответил на него идеально, просто небольшое дополнение: TBODY требуется и в IE7, но не в IE8.