如何执行在JS函数中传递的函数调用为没有eval的字符串?

时间:2014-07-18 18:10:45

标签: javascript string execute

我认为这有点不寻常,但这就是我的意思。 我有一个生成html + js页面的.net应用程序。 我有一个名为 Unit 的东西,它是一种不同html元素的汇编,并且有onlaod和onunload上的人工事件。

function DisplayableUnit(content, onload_js, onunload_js)
{
    this.onload_js = onload_js; //different functions calls like "f1(); f2();"
    this.onunload_js = onunload_js;
    this.content = content; //string of html tags
}

function loadUnitTo(elem_id, unit)
{
    var elem = document.getElementById(elem_id);

    if (elem)
        elem.innerHTML = unit.content;

    if (unit.onload_js)
        ;//how to execute it?
}

很多网站都说eval是坏的,不安全的东西。但这是唯一的选择吗? 我需要纯粹的JS解决方案,没有任何第三方的东西。

1 个答案:

答案 0 :(得分:2)

你可以像这样的函数执行它:

var theInstructions = "alert('Hello World'); var x = 100",
    F=new Function (theInstructions);

return(F());

this stackoverflow线程复制;)