使用eval()运行HTML代码

时间:2018-03-14 04:56:35

标签: javascript html

我正在尝试做一个"自己试试"编辑但没有使用框架。 所以我添加了2个textareas,一个用于代码,一个用于显示结果。我还添加了一个" Run"按钮。 我编写了以下函数来执行第一个文本区域中的代码,并在第二个文本区域中显示结果:

http://localhost/project-folder-name

但我得到的结果文本区域是:undefined。 对不起我的愚蠢问题,但我真的是初学者。所以:

  • eval功能是否仅适用于javascript代码?

  • 将结果部分作为文本区域是否正确?

3 个答案:

答案 0 :(得分:1)

  

eval功能是否仅适用于javascript代码?

是的,它只适用于JavScript代码。当JavaScript代码被写为字符串时,为了执行该代码,我们使用eval()这仅适用于JavaScript。我们不会在HTML中使用eval(),因为浏览器上的HTML即使是字符串也能正常工作

例如,



function looseJsonParse(obj) {
  return eval(obj);
}
console.log(looseJsonParse(
  "{a:(4-1), b:function(){}, c:new Date()}"
))




  

将结果部分作为文本区域是否正确?

不,<textarea></textarea>是输入元素,表示它包含value。内部HTML适用于其他元素。

因此,对于上述情况,document.getElementById('result').val = Code应该有效。 注意:如果值包含HTML,则它将被视为文本,并且不会在浏览器上执行。

奖励:使用大写字母定义变量是不好的做法。最佳实践说变量应该以小写字母开头,它可以是驼峰式的。

脚注:JavaScript eval()&amp;&amp; textarea value

我希望这有帮助!

答案 1 :(得分:0)

是的,eval仅适用于JavaScript代码。要将代码呈现为HTML,只需将其分配给innerHTML而不使用eval:

document.getElementById('result').innerHTML=Code;

要显示结果,您应该使用div,而不是textarea

答案 2 :(得分:0)

  1. 确保您的代码在&#34;代码&#34; textarea返回一个值。如果定义一个函数,请拨打电话。例如。在你的&#34;代码&#34;:function a() { return 1 }; a();
  2. 中试试这个
  3. 应为document.getElementById('result').value = eval(Code);