依次在两个浏览器中运行以下代码
1 <html> 2 <body> 3 <iframe id="myiframe"></iframe> 4 </body> 5 </html> 6 <script type="text/javascript"> 7 var doc = document.getElementById('myiframe').contentWindow.document; 8 var textNode = document.createTextNode('yes~'); 9 doc.open(); 10 doc.write('<html><body></body></html>'); 11 doc.close(); 12 doc.body.appendChild(textNode); 13 </script> 14 15 16 17 18 19 <html> 20 <body> 21 <iframe id="myiframe"></iframe> 22 </body> 23 </html> 24 <script type="text/javascript"> 25 var doc = document.getElementById('myiframe').contentWindow.document; 26 var textNode = doc.createTextNode('yes~'); 27 doc.open(); 28 doc.write('<html><body></body></html>'); 29 doc.close(); 30 doc.body.appendChild(textNode); 31 </script> 32 33 34 35 36 37 <html> 38 <body> 39 <iframe id="myiframe"></iframe> 40 </body> 41 </html> 42 <script type="text/javascript"> 43 var doc = document.getElementById('myiframe').contentWindow.document; 44 doc.open(); 45 doc.write('<html><body></body></html>'); 46 doc.close(); 47 var textNode = doc.createTextNode('yes~'); 48 doc.body.appendChild(textNode); 49 </script>
三段代码在firefox下面都是ok的,但是只有第三段在ie6下面能正常运行,前两段都会报参数无效的错误…… 这说明在ie6下只有使用iframe当前document生成的节点才能被append到DOM中,其他insertBfore..同理
IE8已和其他游览器一致了!