//get topbar
var shopGetTopbar = function(data) {
 eval('var rs='+ (data));
 if(typeof rs != 'object') return;
 if(rs.status == 'true') {
 var menuBox = $('indexMenu');
 menuBox.set('html',rs.data);
 try{
 var codeObj = $('indexMenuArray');
 if(codeObj){isLogin = true; eval('menubutt='+ codeObj.get('html'));}
 else isLogin = false;
 }catch(e){}
 var navTimer = setTimeout(function(){
 clearTimeout(navTimer);
 C.Base.topBar.init();
 C.Base.navBugle.init();
 C.Base.tip.init(); if($$('.loginAfter').length) {
 $('topNavQuitButon').set('href','user.php?act=logout');
 }else if($$('.loginBefore').length){
 $('topNavRegButton').set({'onclick':null}).addEvent('click', function(){window.location='user.php?act=register&referer='+encodeURIComponent(window.location.href);});
 $('loginSubmit').set('onclick',null).addEvent('click', function(){C.Base.navLogin.submit();});
 }
 }, 1000);
 }
};

解决方案 »

  1.   

    data 传入的值是什么? 是不是空啊?
      

  2.   

    站内搜索  出现 Hacking attempt 页面   在FF浏览器下, 发现加载时 eval('var rs='+ data); 句法错误
      

  3.   

    eval('var rs=('+ data + ')');
    这样行不
    var rs = eval("("+ data +")");
      

  4.   

    var rs = eval("("+ data +")");
      

  5.   

    eval('var rs=('+ data + ')');
    的含义是用来执行一段js代码并不是反解json,上面的意思是即将昂data赋值个rs
      

  6.   

    错误应该是data的值没定义吧?你在函数里面用eval('var rs='+ (data)),那么data应该是一个全局变量或纯数字才行。
    var v = new Array();
    v[0] = 1;
    v[1] = 1;
    function fun(data) {
    eval('var rs='+ (data));
    }
    function fun2() {
    var v2 = new Array();
    v2[0] = 1;
    v2[1] = 1;
    fun('2');//数字ok
    fun('v');//全局变量ok
    fun('v2');//局部变量出错
    }
    fun2();
      

  7.   

    如果你想把JSON数据赋给rs,应该是rs=eval(data),而data是JSON格式的数据
      

  8.   

    这个要分情况的,如果data是一个对象或者数值类型,这样写没问题
    如果data是个字符串,那前后要加引号