views:

391

answers:

5

Hey!

I am trying to add an ajax response to a div (it's htmlcode, tables, forms etc).

In FF innerHTML works perfectly, but in IE it gives me an unknown error.

I tried lot's of stuff, but I only got it working when I added jQuery and ran the .html method on the div I want the code inserted into.

Anyone care to explain why this works and not a simple innerHTML? I tried looking at the .html code, but I guess I am not the great at js because I didn't understand what it was doing :(

Thanks!

+2  A: 

ie's innerhtml is a little bit strange. This discussion might help.

Vincent Ramdhanie
A: 

Just use jQuery and forget about all the horrible cross browser problems - you won't go back!

Nick Craig-Wood
While this is mostly true, it doesn't answer the question...
Gyuri
+3  A: 

IE has several documented (pre | table (thead, tbody, tr, tfoot) | div | select) .innerHTML bugs.

Thus libraries like jQuery abstract away those bugs for you by applying workarounds where needed for IE.

As for your specific error... without seeing the code it is hard to tell.

Setting the .innerHTML on pre's, select's, div's (if it does fail, will fail silently) but setting the .innerHTML on certain table elements (in certain versions of IE) will actually throw an error/exception.

scunliffe
A: 

IE is fussy about changing <table>s from javascript. I've run into trouble before if I don't specify the table down to the last detail, including the <tbody> tag.

Jonathon
A: 

I have same problem every day. Try with .innerText instad of .innerHTML, that will solve your problem. Answer is Javascript is parsed different in IE and FF.

Siblja
Setting the .innerText won't work if the content truly is HTML. @AntonioCS is already using jQuery thus has solved the issue - he's just not sure exactly why IE is failing.
scunliffe