Mi sitio web siempre ha funcionado sin problemas con IE8, IE7, FF, Chrome y Safari. Ahora lo estoy probando en IE9 y estoy experimentando un problema extraño: en algunas páginas, algunos datos tabulares se muestran incorrectamente.
La fuente HTML es correcta y todo, y la fila que da el problema cambia cada vez que actualizo la página (a decir verdad, el problema en sí aparece solo en algunas actualizaciones, no en todas).
Usando la herramienta F12 de IE, la estructura de la tabla parece correcta, no debería haber ningún TD vacío después del TD que contiene M08000007448, pero aún así se renderiza así.
Además, si uso la herramienta F12, con la herramienta "seleccionar elemento haciendo clic" en la barra de herramientas, y trato de hacer clic en el espacio vacío entre M08000007448 y 19, selecciona el TR, no un "td oculto".
Tengo este problema de representación de tablas también en alguna otra tabla de la aplicación, ¿alguien está experimentando algo como esto? Sucede solo en IE9 :(
No sé si es importante, pero la página está hecha con ASPNET (formularios web) y usa Jquery y algún otro complemento JS.
Traté de guardar la página (con imágenes) y abrirla en local con IE9, pero el problema nunca ocurre. (Por supuesto, verifiqué toda la estructura de la tabla y está bien. El encabezado y todas las filas tienen el mismo número de TD, con el número correcto de colspan cuando sea necesario).
Respuestas:
También tengo exactamente el mismo problema. es posible que desee leer este https://connect.microsoft.com/IE/feedback/details/649949/innerhtml-formatting-issues-on-very-large-tables
Puede eliminar el espacio entre td usando javascript si su html se devuelve desde ajax, luego, desde la respuesta, lo reemplaza con
fuente
Tuve exactamente el mismo problema al poblar una tabla usando plantillas jquery. Seguí teniendo 'fantasmas'
<td>
en conjuntos de datos más grandes (300+) solo en IE9. Estos<td>
empujarían las columnas externas fuera de los límites de mi tabla.Arreglé esto haciendo algo realmente tonto; eliminando todos los espacios entre el
<td>
etiquetas de inicio y final y justificando a la izquierda el marcado HTML correspondiente a mi tabla. Básicamente, desea que todos estén<td>
</td>
en la misma línea, sin espacios.Ejemplo:
fuente
La solución dada a @Shanison ayuda solo parcialmente, pero el problema persiste si hay espacios entre cualquiera de los otros elementos que pueden ser parte del modelo de contenido de la tabla como thead, th, etc.
Aquí hay una expresión regular mejor diseñada por mi líder en el trabajo.
cubriendo todos los elementos table, caption, colgroup, col, tbody, thead, tfoot, tr, td, th.
Nota: jQuery.browser se eliminó en jQuery 1.9 y solo está disponible a través del complemento jQuery.migrate. En su lugar, intente utilizar la detección de funciones.
fuente
Solucioné este problema eliminando el espacio en blanco:
fuente
IE Blog menciona una nueva herramienta hoy llamada el script Compat Inspector para ayudar a solucionar problemas de incompatibilidad de renderizado de IE 9. Puede ayudar a solucionar su problema.
http://blogs.msdn.com/b/ie/archive/2011/04/27/ie9-compat-inspector.aspx
fuente
Yo también estaba teniendo ese problema.
Se me ocurrió, ese atributo de ancho en las etiquetas td / th causando este problema.
Lo cambié a style = "width: XXpx" y el problema está resuelto :)
fuente
También encontré este problema y me di cuenta de que sucedía cuando estaba colocando texto directamente en
<td>
elementos. No estoy seguro de si es un estándar o no, pero después de envolver cualquier texto en<span>
elementos, los problemas de representación desaparecieron.Entonces en lugar de:
tratar:
fuente
Encontré un script muy útil para evitar celdas no deseadas en su tabla html mientras se renderiza.
Esta función de javascript debe llamar cuando se carga la página (es decir, evento de carga)
fuente
Respuesta tardía, pero espero poder ayudar a alguien con esto. Experimenté el mismo problema al depurar en IE9. La solución fue eliminar todos los espacios en blanco en el código HTML. En vez de
<tr> <td>...</td> <td>...</td> </tr>
Tenía que hacer
¡Esto pareció resolver el problema!
fuente
Este es un error muy grave en IE9. En mi caso, eliminar solo los espacios en blanco entre diferentes td no fue suficiente, por lo que también eliminé espacios entre diferentes tr. Y está funcionando bien.
fuente
Tuve un problema similar con ie-9 al renderizar una tabla dinámica.
cuando se renderiza se traduce en ...
esto funciona perfectamente bien en ie = 10 chrome safari ...
necesitas escribir en
100px
lugar de100
.fuente
Tiene el mismo problema de formato con ie9, y un nuevo problema en ie11 donde se formatea correctamente pero tarda entre 25 y 40 segundos en representar una tabla de aproximadamente 400 filas y 9 columnas. Tiene la misma causa, espacios en blanco dentro de las etiquetas tr o td.
Estoy mostrando una tabla que se crea mediante la representación de una vista parcial de una llamada AJAX. Decidí BFH en el servidor eliminando el espacio en blanco de la vista parcial renderizada, usando un método publicado aquí: http://optimizeasp.net/remove-whitespace-from-html
Esta es su solución copiada in-toto:
Y aquí hay un método que devuelve una vista parcial como una cadena, robada de otra respuesta SO:
Se necesita un poco de tiempo, pero menos de un segundo, para renderizar una tabla de aproximadamente 400 filas, lo que para mis propósitos es suficientemente bueno.
fuente
A veces tuve este problema en tablas generadas por Knockout. En mi caso, lo arreglé usando la solución jQuery que se encuentra aquí
fuente
Tuve el mismo problema con la cuadrícula KendoUI en IE10. Pude obligar a IE a volver a procesar las celdas de la tabla que faltaban con este truco:
Agregar un textNode vacío hace que IE vuelva a renderizar toda la tabla.
fuente