日期:2014-05-16  浏览次数:20297 次

关于js字符串转成函数
求教,有没有可能实现一个字符串转成js的函数,如string s="function(){}",加到<script>里就是一个可以执行的方法。
我是这样做的
JScript code

var jsDocText = document.createTextNode(jsText);
 var jsDoc = document.createElement("script");
 jsDoc.appendChild(jsDocText);
 document.getElementsByTagName("head")[0].appendChild(jsDoc);


这样做看页面解析出来的效果,格式完全正确,就是都是文本,不是可执行方法,有没有办法实现呢??

------解决方案--------------------
eval
------解决方案--------------------
JScript code
var s = 'function fn(s) { alert(s); }';
eval(s);
fn('test');

------解决方案--------------------
像楼主的代码,直接append到<script>标签的js代码串会直接运行的吧,怎么还要eval,难道ie下不行?我没测ie,chrome/ff都可以的。
看在jsbin测试的结果
http://jsbin.com/unuvev/edit#source
------解决方案--------------------
JScript code
var fun="function(){alert(123);}";        
                var f1=(new Function("alert(123)"))(),f2=(new Function("return "+fun))();
                f2();

------解决方案--------------------
探讨
JScript code

var s = 'function fn(s) { alert(s); }';
eval(s);
fn('test');