如何执行在JS函数中作为字符串传递的函数调用,没有eval
How to execute function calls that passed in JS function as string without eval?
我认为这有点不寻常,但这就是我的想法。我有一个。net应用程序,生成html + js页面。我有一个叫做Unit的东西,它是不同html元素的集合,有人工事件的onload和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解决方案没有任何第三方的东西。
您可以像这样将其作为函数执行:
var theInstructions = "alert('Hello World'); var x = 100",
F=new Function (theInstructions);
return(F());
相关文章:
- 从带参数的字符串变量调用函数中的函数
- 如何知道找到的单词是字符串的一部分还是JavaScript中的函数调用
- 在 $( 文档 ).ready 函数中使用字符串名称调用 javascript 函数
- 包含函数调用的json字符串
- 如何使用一些变量参数从javascript函数调用 asp.net C#函数并从C#函数获取字符串返回
- 如何将函数调用转换为首先评估输入的字符串
- 与 RTL 语言一起使用时字符串替换函数调用的顺序
- 使用字符串作为函数调用范围
- 在 Javascript 中的对象文字中按名称(作为字符串)调用函数
- 将函数调用捕获为字符串
- 如何在函数调用时将字符串转换为变量名称
- 如何从字符串中调用匿名函数
- 将字符串从一个函数调用到另一个函数似乎不起作用.,为什么?
- 使用字符串参数调用javascript函数
- Javascript函数调用字符串名称
- 触发绑定函数;通过字符串还是调用函数
- 如何执行在JS函数中作为字符串传递的函数调用,没有eval
- Javascript函数调用.字符串中的转义引号
- 为什么这个函数调用返回一个字符串而不是一个数字
- 解析大字符串以调用Node中的JS函数