今天学了一个内置顶层函数,eval();其作用是将字符串转换成javascript命令执行,但必须符合语法,否则会报错。
如果写成window.eval(),则其定义的变量会在全局生效。
但是,在IE中,(测试为IE8及以下), window.eval()定义的变量不能在全局作用域生效,而ie有自己的一个函数为window.execScript()可以做到同样的效果。于是,在实际应用中,需要一个判断的函数,分别使用。如下:
function evals(str){
if(typeof str!="string"){//如果参数的类型不等于字符串类型
return;
}
if(window.execScript){
window.execScript(str);
}
else{
window.eval(str);
}
}
function aa(){
evals("var a='弹出内容'");
alert(a);
}
aa();
alert(a);