IE8 中执行 eval() 问题

发布于 2021-11-16 22:33:19 字数 173 浏览 1078 评论 6

今天突然发现在ie8中执行eval()有问题,原本我是想通过eval()创建对象 ,但IE8+不支持,在网上也查了相关资料,但没有找到结果 ,求助大伙。

var swordWidget = eval("new " + className + "()"); //className就是js对象的名字,但ie8+不能创建

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

野心澎湃 2021-11-16 23:28:49

我测试了没发现问题。一定是你的代码有问题!

无法言说的痛 2021-11-16 23:28:38

试试加上括号, 或者就把定义的变量写里面!

var obj=eval('(new '+classname+'())');

或者eval('var obj=new '+classname+'()');

或者var obj={};eval('(obj.target=new '+classname+'())');//取出target

或者eval('({target:new '+classname+'()})');//取出target

或者eval('(function(){return new '+classname+'();})()')

至少有一种可以

不过这样做实际上没有什么好处...真的

躲猫猫 2021-11-16 23:28:30

在ie中使用
window.execScript看看,你确保你此处的代码
className 定义了吗?

筱武穆 2021-11-16 23:28:29

在ie中使用
window.execScript看看,你确保你此处的代码
className 定义了吗?

猫烠⑼条掵仅有一顆心 2021-11-16 23:19:38

试了,但不行

巡山小妖精 2021-11-16 22:39:58

是提示没有eval函数么?

如果不是 则可以eval("var swordWidget = new " + className + "()");

这样试试

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文