“在一个文本框中输入JavaScript代码,点击按钮后,在另一文本框中显示结果。”比如:在页面中有3个控件,如下
    <textarea   id="txtSource" name="txtSource" / ></textarea><br />
    <input type="button" id="btnExecute" name="btnExecute" value="执行" onclick="return btnExecute_onclick()" /><br />
    <textarea  id="txtResult" name="txtResult" ></textarea>在txtSource文本框中输入document.write("中国"),如何在txtResult显示“中国”呢?
当然在button的btnExecute_onclick()事件中,直接写document.getElementById("txtResult").value=“中国”就不算了,因为程序运行后,在txtSource文本框中还可以输入别的js代码,总不该在运行前就把输出结果固定死了吧。

解决方案 »

  1.   

    我也想知道,用eval()好像不行
      

  2.   

    这样就行了
    function btnExecute_onclick(){
               document.getElementById("txtResult").value=document.getElementById("txtSource").value
           }
      

  3.   

    window.eval(document.getElementById('txtSource').value);
      

  4.   

    tianxyz1988:你没有理解我的意思,我想要的是执行txtSource文本框中的代码,不是把txtSource文本框中的文本原封不动地显示在txtResult文本框中;
    yu__yfchun125:你的办法能出来结果,但是结果并没有显示在txtResult文本框中呀,而是直接显示在页面上了
      

  5.   

    <script type="text/javascript" language="javascript">
    function doSource(source, target)
    {
    var _cmd = document.getElementById(source).value;
    var _fram = document.getElementById(target);
    _fram.src="javascript:"+ _cmd;
    }
    </script>
    <textarea id="txtSource" name="txtSource" / ></textarea><br />
      <input type="button" id="btnExecute" name="btnExecute" value="执行" onclick="return doSource('txtSource', 'fraResult');" /><br />
      <iframe id="fraResult" name="fraResult" ></iframe>
      

  6.   

    up,学习了,用<iframe>不错,<textarea>好像就不行了
      

  7.   

    就是eval(),我玩过,
    我以前经常在自己所编写的包含了内容的页面里面再多出来一个输入框和一个按钮,输入框里写动态想对dom操作的代码,然后按钮就是执行我输入的代码!这样的好处是很既时,比改源文件后用ide编译后显示要快很多,很方便测试!我一般都是写代码的时候写:alert(......)然后点执行按钮也可以再添加一个<textarea></textarea>
    这样你写代码的时候就写area.text=.......
    当然楼主说的情况的话document.write
    这种情况想必是另外开了一个窗口,把这个窗口做成textarea的样子,不这么做的话一旦document.write
    就在本页执行~东西就全覆盖掉了~窗口之间完全是可以通信的,这个网上有资料可以学习,父窗口可以控制子窗口dom,子也可以父,子控制父然后控制父下的另一个子,这都是没问题的,只要不跨域,