对于IE,首先 script 标签必须带 defer 属性,其次在插入时刻,innerHTML 的所属节点必须在 DOM 树中;对于 Firefox 和 Opera,在插入时刻,innerHTML 的所属节点不可以在 DOM 树中。
怎么办呢?想到了innerText和outerHTML,它们与innerHTML的区别如下:
结果用outerHTML问题就解决了。但是,新的问题又来了,在firefox下不能用了。
结果只能分别定义IE和firefox:
1 var ua = navigator.userAgent.toLowerCase();
2 if (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0)
3 {
4
5 }
6 else
7 {
8
9 }
2 if (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0)
3 {
4
5 }
6 else
7 {
8
9 }
不过在网上看到有人提出了一个方法,可以借鉴。但是我没测试。