document.write 一定要和document.open, document.close一起用吗?假如我只调用了document.open和document.write,没有调用document.close,可以吗?有什么后果?
假如没有调用document.open就直接调用document.write可以吗?

解决方案 »

  1.   


    document.open跟close不用写出来的如果调用write  隐式就是先调用open执行完 就调用 close了不用显示写出来
      

  2.   

    不需要的。。调用write的时候引擎自动帮你做open与close工作了
      

  3.   

    document.write只在文档加载的过程中调用才有效,此时不用调用document.open和document.close也不必调用,但如果文档加载完再调用的话会打开一个新的输出流把原来的覆盖掉,此时它自身会隐式调用document.open和document.close。
      

  4.   

    但是我做了一个实验,似乎和楼上几位的回答不一样:实验的html为:
    <html>
        <head>
             <script>
                 function windowOnload(){
                          alert('windowload');
                          window.frames['Frame0'].document.write('<body onload=\'alert("newdoc1loaded")\'>new doc1</body>');
                          //window.frames['Frame0'].document.close();
                 }
                 window.onload=windowOnload;
             </script>
        </head>
        <body>
            test onload
            <iframe id='Frame0' width='200px' height='200px' onload='alert("frameload");'></iframe>
        </body>
    </html>当注释掉window.frames['Frame0'].document.close()后,alert的顺序为frameload->windowload
    当不注释window.frames['Frame0'].document.close()时,alert的顺序为frameload->windowload->newdoc1loaded->frameload.请问为什么? 是不是说明应该加上document.close比较好?
      

  5.   

    给楼主参考一下
    http://www.cnblogs.com/dh616854836/articles/2140349.html
      

  6.   

    我研究后,结论是调用document.write会隐式调用open,但是不会隐式调用close,需要手工调用close.