Google Closure Compiler压缩代码后运行出错的解决办法分享

 最近在搞一些javascript的东西,由于系统完全是基于配置文件的,所以一些javascript的函数名或者函数代码直接写在了配置文件当中。


 最近在搞一些javascript的东西,由于系统完全是基于配置文件的,所以一些javascript的函数名或者函数代码直接写在了配置文件当中。

    //配置好的方法名
    var funcName="func1";
    //写好的方法
    function func1(s){
        alert(s);
    }

  也可能是配置为:

    var funcName="function(s){alert(s);}";

  在调用的地方

    var str="Hello!";
    eval("("+funcName+")(str)");

  正常调用没有问题,如果使用Compiler压缩后,因为str变量已经被改名,所以eval会出错。

  改用:

    //var f=eval("(" + funcName + ")");
    var f=eval("(function() {return (" + funcName + ");})()");
    f.call(this,str);

  解决问题。

  在chrome/firefox/opera下,直接用 eval(“(” + funcName + “)”) 可返回function对象,而IE下会返回 undefined 。

  用 eval(“(function() {return (” + funcName + “);})()”); 解决兼容性问题

—-想了解更多的linux相关异常处理怎么解决关注<计算机技术网(www.ctvol.com)!!>



本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/uncategorized/49750.html

(0)
上一篇 2020年4月9日
下一篇 2020年4月9日

精彩推荐