Situs web saya selalu berjalan mulus dengan IE8, IE7, FF, Chrome, dan Safari. Sekarang saya mengujinya di IE9 dan saya mengalami masalah aneh: di beberapa halaman, beberapa data tabel dirender dengan tidak benar.
Sumber HTML benar dan semuanya, dan baris yang memberikan masalah berubah setiap kali saya menyegarkan halaman (sejujurnya, masalah itu sendiri hanya muncul di beberapa penyegaran, tidak semua).
Dengan menggunakan Alat F12 IE, struktur tabel tampak benar, tidak boleh ada TD kosong setelah TD yang berisi M08000007448, tetapi tetap saja dirender seperti ini.
Selain itu, jika saya menggunakan alat F12, dengan alat "pilih elemen dengan klik" di bilah alat, dan saya mencoba mengeklik ruang kosong antara M08000007448 dan 19, ia memilih TR, bukan "td tersembunyi".
Saya mengalami masalah rendering tabel ini juga di beberapa tabel lain dalam aplikasi, ada yang mengalami hal seperti ini? Itu hanya terjadi di IE9 :(
Saya tidak tahu apakah itu penting, tetapi halaman dibuat dengan ASPNET (formulir web) dan menggunakan Jquery dan beberapa plugin JS lainnya.
Saya mencoba untuk menyimpan halaman (dengan gambar) dan membukanya secara lokal dengan IE9, tetapi masalah tidak pernah terjadi. (Tentu saja saya memeriksa semua struktur tabel dan tidak apa-apa. Header dan semua baris memiliki jumlah TD yang sama, dengan jumlah colspan yang tepat jika perlu).
Jawaban:
Saya juga memiliki masalah yang persis sama. Anda mungkin ingin membaca https://connect.microsoft.com/IE/feedback/details/649949/innerhtml-formatting-issues-on-very-large-tables ini
Anda dapat menghapus spasi di antara td dengan menggunakan javascript jika html Anda dikembalikan dari ajax, kemudian dari respon, Anda menggantinya dengan
sumber
Saya memiliki masalah yang sama persis saat mengisi tabel menggunakan template jquery. Saya terus mengalami 'hantu'
<td>
pada dataset yang lebih besar (300+) hanya di IE9. Ini<td>
akan mendorong kolom luar di luar batas tabel saya.Saya memperbaikinya dengan melakukan sesuatu yang sangat konyol; menghapus semua spasi antara
<td>
tag awal dan akhir dan kiri membenarkan markup HTML yang berkaitan dengan tabel saya. Pada dasarnya, Anda ingin semua<td>
</td>
berada di baris yang sama, tanpa spasi.Contoh:
sumber
Solusi yang diberikan @Shanison hanya membantu sebagian tetapi masalah tetap ada jika ada spasi di antara elemen lain yang dapat menjadi bagian dari model konten tabel seperti thead, th dll.
Berikut adalah ekspresi reguler yang lebih baik yang dibuat oleh Pimpinan saya di tempat kerja.
yang mencakup semua tabel, caption, colgroup, col, tbody, thead, tfoot, tr, td, th elemen.
Catatan: jQuery.browser telah dihapus di jQuery 1.9 dan hanya tersedia melalui plugin jQuery.migrate. Silakan coba gunakan deteksi fitur sebagai gantinya.
sumber
Saya memperbaiki masalah ini dengan menghapus spasi:
sumber
Blog IE menyebutkan alat baru hari ini yang disebut skrip Compat Inspector untuk membantu memecahkan masalah ketidakcocokan rendering IE 9. Ini dapat membantu memecahkan masalah Anda.
http://blogs.msdn.com/b/ie/archive/2011/04/27/ie9-compat-inspector.aspx
sumber
Saya juga mengalami masalah itu.
Terpikir oleh saya, bahwa atribut lebar di tag td / th menyebabkan masalah ini.
Mengubahnya menjadi style = "width: XXpx" dan masalah terselesaikan :)
sumber
Saya mengalami masalah ini juga dan saya menyadari bahwa itu terjadi ketika saya langsung memasukkan teks ke dalam
<td>
elemen. Saya tidak yakin apakah itu standar atau tidak tetapi setelah membungkus teks apa pun dalam<span>
elemen, masalah rendering menghilang.Jadi, alih-alih:
mencoba:
sumber
Menemukan skrip yang sangat berguna untuk mencegah sel yang tidak diinginkan di tabel html Anda saat rendering.
Fungsi javascript ini harus Anda panggil saat halaman dimuat (yaitu, peristiwa saat memuat)
sumber
Jawaban terlambat, tapi semoga saya dapat membantu seseorang dengan ini. Saya mengalami masalah yang sama saat men-debug di IE9. Solusinya adalah menghapus semua spasi dalam kode HTML. Dari pada
<tr> <td>...</td> <td>...</td> </tr>
saya harus melakukan
Ini sepertinya menyelesaikan masalah!
sumber
Ini adalah bug yang sangat serius di IE9. Dalam kasus saya menghapus hanya spasi putih antara td berbeda tidak cukup, jadi saya telah menghapus spasi antara tr yang berbeda juga. Dan itu bekerja dengan baik.
sumber
Saya memiliki masalah yang sama dengan ie-9 saat merender tabel dinamis.
ketika diterjemahkan diterjemahkan menjadi ...
ini berfungsi dengan baik di ie = 10 chrome safari ...
Anda perlu menulis,
100px
bukan100
.sumber
Memiliki masalah pemformatan yang sama dengan ie9, dan masalah baru di ie11 yang memformat dengan benar tetapi membutuhkan waktu 25-40 detik untuk membuat tabel dengan sekitar 400 baris dan 9 kolom. Ini memiliki penyebab yang sama, spasi di dalam tag tr atau td.
Saya menampilkan tabel yang dibuat dengan rendering tampilan parsial dari panggilan AJAX. Saya memutuskan untuk BFH di server dengan menghapus spasi dari tampilan parsial yang diberikan, menggunakan metode yang diposting di sini: http://optimizeasp.net/remove-whitespace-from-html
Ini solusinya disalin di-toto:
Dan berikut adalah metode yang mengembalikan tampilan parsial sebagai string, dicuri dari jawaban SO lain:
Butuh sedikit waktu, tetapi kurang dari satu detik untuk membuat tabel sekitar 400 baris, yang menurut saya cukup baik.
sumber
Saya terkadang mengalami masalah ini pada tabel yang dihasilkan oleh Knockout. Dalam kasus saya, saya memperbaikinya menggunakan solusi jQuery yang ditemukan di sini
sumber
Saya memiliki masalah yang sama dengan kisi KendoUI di IE10. Saya dapat memaksa IE untuk merender sel tabel yang hilang dengan peretasan ini:
Menambahkan textNode kosong membuat IE merender ulang seluruh tabel.
sumber