IE 8 problema visualizzazione e compatibilità

andykk

Nuovo Utente
6 Ott 2010
1
0
0
Ciao a tutti,
ho una pagina web in cui popolo dinamicamente una tabella colonna per colonna, attraverso un interazione Ajax client-server, che richiede una colonna alla volta al server (apache-mysql-php).
Ogni singola colonna viene popolata dalla funzione seguente:

function tableColInsertAt (tableID,colIndex,rowsValues,cellIntClassName,cellDataClassName) {

var table = document.getElementById(tableID);
var rows = table.rows;
var numRows = rows.length;
var row, cell;

var applyCssClass = (arguments.length > 3);

for (var r = 0; r < numRows; r++) {
row = document.getElementById(tableID).rows[r];
cell = row.insertCell(colIndex);
cell.innerHTML = rowsValues[r];
if (applyCssClass) {
var cellClassName = (r == 0) ? cellIntClassName : cellDataClassName ;
cell.className = cellClassName;
}
}

}

La cosa funziona perfettamente, tranne nel caso definito dalle seguenti condizioni:
1) Browser IE 8
2) Modalità visualizzazione: IE8
3) Numero di righe della singola colonna molto alto (>800)

In questo caso non riesco mai a finire la tabella, perchè durante la renderizzazione di una colonna (non sempre la stessa) mi viene ritornato un messaggio da IE che dice che a causa di problemi di visualizzazione Explorer è costretto a ricaricare la pagina in "visualizzazione compatibilità".

In "visualizzazione compatibilità" tutto fila liscio, ma vorrei riuscire a scrivere del codice che funzioni per IE8 e non forzare Explorer a lavorare in "visualizzazione compatibilità".

Sto cercando quindi di capire che cos'è nel codice che potrebbe causare quel problema, ma per ora nessun risultato.
Ho anche provato a realizzare la renderizzazione con la libreria DOM, ma il risultato è lo stesso:

function tableColInsertAt (tableID,colIndex,rowsValues,cellIntClassName,cellDataClassName) {

var table = document.getElementById(tableID);
var rows = table.getElementsByTagName("tr");
var numRows = rows.length;
var row, cell;

var applyCssClass = (arguments.length > 3);

for (var r = 0; r < numRows; r++) {
row = (rows[r]);
cell = document.createElement("td");
cell.appendChild(document.createTextNode(rowsValues[r]));
row.appendChild(cell);
if (applyCssClass) {
var cellClassName = (r == 0) ? cellIntClassName : cellDataClassName ;
cell.className = cellClassName;
}
}

}

Qualcuno mi può aiutare?

Grazie e ciao!
Andrea
 

Discussioni simili

M
Risposte
2
Visite
2K
HTML e CSS
Membro cancellato 26246
M