Dynamically hiding columns causes browser crash in IE7 (1.10.7)
Dynamically hiding columns causes browser crash in IE7 (1.10.7)
Hiding a column crashes the browser in IE7 if any of the following conditions are true (that I've seen so far):
autoWidth enabled, scrollY enabled.
Here are my simple test cases running against 1.10.7:
http://live.datatables.net/yipuluza/1 - Default table initialization. Crashes.
http://live.datatables.net/yipuluza/2 - autoWidth = false. Doesn't crash.
http://live.datatables.net/yipuluza/3 - autoWidth = false, scrollY = 200. Crashes.
I tried the tests against the nightly build and had the same results. The latest version that ran without crashing is 1.10.4.
I am testing on a Vista/IE7 virtual machine obtained from modern.ie: http://dev.modern.ie/tools/vms/windows/
(The crash doesn't happen in IE7 emulation mode in IE10)
Please let me know if I can provide any further information, or if you can think of any workarounds. I can live without autoWidth - my designers might want to control the width of the columns anyway - but I can't easily give up the scroller.
Thanks for your time, I'm a huge fan of Datatables!
Answers
I've found a workaround for at least one of the cases. If you have autoWidth off and scrollY enabled (third test case), IE7 only crashes if you have defined columns/headers in HTML. If you move all column definition to script - i.e. only a table tag in html - then you are OK. AutoWidth will still cause a crash in this setup.
Here's a test case with script-only column definitions that runs OK in IE7: http://live.datatables.net/vagomumo/3
Darn, I though I'd sorted this out in the 1.10.7 release. Its something to do with the cloning of elements in the column width calculations and prove to be a nightmare to trackdown before - and apparently I didn't fully do so.
This one is going to require quite a bit of time to resolve I think - let me get back to you... :-)
Allan
Thanks, Allan. Let me know if there's anything else I can do to help.
A patch fix? ;-)
Or some testing on the software when I think I've got it fixed!
Allan