function runCode(obj) {
var myWin = window.open('', '_blank', '');
var t = document.getElementById(obj).value;
//myWin.document.open('text/html', 'replace');
myWin.opener = null;
myWin.document.write(t);
//myWin.document.close();
}本函数是运行textarea上的内容。中间有两条注释,加与不加都可以正常跑起来。但不太明白意思,求注释这两行,作者写的用意?

解决方案 »

  1.   

    document指的是当前的iframe或者window,这就应该明白了吧,因为默认的也是当前的
      

  2.   

    什么叫“本函数是运行textarea上的内容”
      

  3.   

    许多网站上有这种代码的演示效果,就是一个textarea中间写了很多代码,你点一个演示的按钮触发一个事件,该事件调用js函数将textarea中的代码读取出来并写入的一个独立的html文本中,浏览器会将这个文本当做正常的页面来执行,从而看到代码的执行效果。
      

  4.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>test html</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link href="styles/common.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
    //obj为id
    function runCode(obj) {
    var myWin = window.open('', '_blank', '');
    var t = document.getElementById(obj).value;
    myWin.document.open('text/html', 'replace');
    myWin.opener = null;
    myWin.document.write(t);
    myWin.document.close();
    }
    </script>
    </head><body>
    <div class="box">
    <textarea id="runCode0" class="textarea">

    </textarea>
    <input onclick="runCode('runCode0')" class="input_btn" type="button" value="运行代码" /></div></body>
    </html>
    完整代码
      

  5.   

    我来试着分析下啊~~也许有帮助。
    首先这与textarea中写的是什么代码有很大关系,如果是html+js+css等这些类似的WEB代码呢(代码要完整),无论注释不注释掉那两行都可以,var myWin = window.open('', '_blank', '');这里都会打开一个页面如果是以上代码浏览器会自动完成解析,最终你会看到想要的结果,如果代码不是我举得例子需要编译的话,估计就像是成代码的形式了。myWin.document.open('text/html', 'replace');这行其实就是控制页面的文本类型,要浏览器显示一个text/html的html页面,如果是以上代码无所谓的。myWin.document.close();最后是个关掉document对象,当然这里是为了回收资源才这么做的,可以注释掉无非就是占用着资源罢了。
    个人理解希望有所帮助,当然有错误也希望大家指正。