javascript - 一段js代码但是是字符串,怎么执行呀?
PHPz
PHPz 2017-04-11 12:53:38
[JavaScript讨论组]

比如说我有下面的一段js代码

function switchViewFunc(){
    return function(param){
        if (param === "back") {
            appGoBackPage();
        }
    }
}

我使用sessionStorage把它存在了内容中。在需要的时候把它读取出来,他变成了一段字符串。

看执行截图:

请问上图中aaa的值我怎么把它转化为js代码执行呢?

PHPz
PHPz

学习是最好的投资!

全部回复(8)
大家讲道理

保存时把外层的声明去掉,或者取出来时去掉,不知你的应用场景如何,但这个应该不难。
保存成这样

aaa = 'return function(param){
        if (param === "back") {
            appGoBackPage();
        }
    }'

然后

var switchViewFunc = new Function(aaa)
switchViewFunc()
PHPz

首先,你这是一种非常危险的行为。eval()方法在新的JS标准中,已经变成了废弃的方法。看不懂你为什么会有这种需求。

怪我咯

eval()应该可以吧!

巴扎黑

这需求没见过,不过也不是没办法;
楼上说的eval()可以,还有一种就是创建一个script标签
var aa="function aa(){alert('aa')}";
var bb=document.createElement("script")
bb.innerHTML=aa;
document.body.appendChild(bb);
aa();
这段代码是可以执行的,但就是觉得有点奇怪,我也需要大神指点啊。。

PHPz

用 (new Function("..."))

巴扎黑

应该存一些参数什么的吧,存代码,这做法不大好吧。。

怪我咯

问题都是错的,什么目的让你这么干?

迷茫

很奇怪的需求,直接把代码保存成文件不就好了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号