执行动态HTML / JavaScript

时间:2011-05-13 05:28:10

标签: javascript

我想创建一个textarea和一个分区,这样无论你在textarea中放入什么嵌入代码,它都会在分区上实时执行。

非常感谢您的帮助!

JavaScript新手

这是一次尝试:

<script type="text/javascript">
var X = " HTML or JavaScript "
window.onload=function()
{
document.getElementById("result").innerHTML = document.getElementById("input").value;
}
</script>

<textarea id="input" cols="35" rows="7"> X </textarea>

<div id="result"></div>

2 个答案:

答案 0 :(得分:1)

当您单击textarea之外的任何位置时,这将评估textarea的内容。 (代码更新以将源(<textarea/>)的结果设置为HTML,如果源以小于('&lt;')开头或将源代码评估为Javascript。)

<textarea id="js" onBlur="run(this)"></textarea>

<div id="result">Result goes here!</div>

<script type="text/javascript">

  function run(elt){
    var target_div=document.getElementById('result'),
        result='';

    if(target_div) {
      if(elt.value.match(/^\s*</)) { // content of textarea begins with less-than
        result=elt.value;
      }
      else { // eval content of textarea as Javascript
        try {
          result=eval(elt.value);
        }
        catch (e) {
          alert('failed to eval source:'+e.description);
        }
      } // else match
      if(result) {
        target_div.innerHTML=result;
      }
    } // if target_div
    return false;
  } // end run
</script>

当然,通常认为允许用户执行任意代码是一个非常糟糕的想法。 ; - )

答案 1 :(得分:0)

查看Eval()

以下是一些可以帮助您入门的代码。

 <textarea id='js'>window.alert('Hello Cruel World');</textarea> <input type=submit onclick="run()" value="run">
 <script>
 function run ()
 {
      eval(document.getElementById('js').value);
 }
 </script>