“defer” for IE7’s operation aborted error
IE has this "operation aborted" problem (MSDN article) when you try to change your parent while it's not ready.
This is the example they give that causes this error:
<html> <body> <div> <script> document.body.innerHTML+="sample text"; </script> </div> </body> </html>
Turns out you can easily solve it by just adding a defer
attribute to the script
. This works just fine:
<html> <body> <div> <script defer> document.body.innerHTML+="sample text"; </script> </div> </body> </html>
BTW, this operation aborted may bite you if you decide to append a script node to the body, like
var js = document.createElement('script'); js.async = true; js.src = "http://tools.w3clubs.com/pagr/1.sleep-2.js"; document.body.appendChild(js);
So it's not a good idea to append to the body like this when you don't control the page you're adding this code to, although document.body
seems to be always available even when the page doesn't have a <body> tag