一、什么是eval()函数?
eval_r()函数可计算某个字符串,并执行其中的的 JavaScript 代码。
二、如何动态定义变量?
既然eval()能够计算字符串,何不将定义变量的写法转换为字符串,然后放入eval_r()函数内进行执行,形如:
var defineStr = "var number_"+i.toString(); eval_r(defineStr);
这样就定义了一个变量,你可以设置debugger 跟踪调试一下看看number变量是否定义成功。
倘若i值为1,那么动态的变量就为number_1。后续一样可以通过这种形式为其赋值:
eval_r("number_"+i.toString()+" = 120;");
这样就为其变量number_1赋值为120了。但是这里绝对不能够这样去写:
eval_r("number_"+i.toString()) = 120
这样写是存在于法错误的。
以上这种写法在IE内却有些行不通,得需要使用executeScript(string)来执行,判断如下:
if(window.executeScript){ //IE浏览器 window.executeScript(defineStr); }else{ //Chrome、Firefox等非IE浏览器 window.eval_r(defineStr); }