求教,有没有可能实现一个字符串转成js的函数,如string s="function(){}",加到<script>里就是一个可以执行的方法。
我是这样做的var jsDocText = document.createTextNode(jsText);
var jsDoc = document.createElement("script");
jsDoc.appendChild(jsDocText);
document.getElementsByTagName("head")[0].appendChild(jsDoc);这样做看页面解析出来的效果,格式完全正确,就是都是文本,不是可执行方法,有没有办法实现呢??
我是这样做的var jsDocText = document.createTextNode(jsText);
var jsDoc = document.createElement("script");
jsDoc.appendChild(jsDocText);
document.getElementsByTagName("head")[0].appendChild(jsDoc);这样做看页面解析出来的效果,格式完全正确,就是都是文本,不是可执行方法,有没有办法实现呢??
解决方案 »
- JQuery 下拉框问题
- 关于用JS实现三联动,高手快进来啊 ,急!
- 构造函数外给prototype赋值才能即时绑定?
- jquery在ie下无法选择兄弟节点
- 关于innerhtml的问题
- iframe的高度为何不能用百分比呢,而宽度则可以,这样就很难在不同的分辨率下控制了
- 想实现鼠标指针放在表格的数字上就能出现一个金山词霸那样的小窗口,鼠标移开窗口就消失,请大家帮忙,下面给出源代码
- 请教:html页面中用javascript数据合法性检查的问题
- 如何用Javascript设定页面中表格的样式?
- ajax更改meta的字段,没有参考
- 使用 javascript:this.value=this.value.replace(",",","); 后的问题。
- 请教一个JS URL编码问题
eval(s);
fn('test');
看在jsbin测试的结果
http://jsbin.com/unuvev/edit#source
var f1=(new Function("alert(123)"))(),f2=(new Function("return "+fun))();
f2();
"eval is evil"
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<script type='text/javascript'>
var jsText = 'var myfn = function(){alert(1)}'
var jsDocText = document.createTextNode(jsText);
var jsDoc = document.createElement("script");
jsDoc.appendChild(jsDocText);
document.getElementsByTagName("head")[0].appendChild(jsDoc);
myfn()
</script>
</body>
</html>
var jsDoc = document.createElement("script");
jsDoc.innerHTML = jsText;
document.getElementsByTagName("head")[0].appendChild(jsDoc);
jsText="var $ = function(id) {
return document.getElementById(id);
}";
这样的,
只好用eval了,或者直接new Function,因为它的参数就是代码串。var jsText = 'function(){alert(1)}'var jscode = new Function('return '+jsText)();jscode()
嗯,这样确实可以,,不过如果jsText="function a(){};function b(){};function C(){}..."这种格式的就不能了吧。