eval("this."+cmdFnName+"('" + xmlFnData + "'" + cmdFnParamString + ")");
怎用

解决方案 »

  1.   

    你还要加括号
    IE没报错是它有强大的容错能力
    在FF里“+”会被认为是算术符号,所以报错了
      

  2.   

    错误: unterminated string literal
      

  3.   

    ('" + xmlFnData + "'" + cmdFnParamString + ")你看看你的这段cmdFnParamString 使用具体的内容替换后成了什么样子?
      

  4.   

    "this."+cmdFnName
    是一个还是还是两个数据?
      

  5.   

    this.resolverXmlData = function (xml){
    for(var k = 0; k < xml.childNodes.length; k++){
    if (xml.childNodes[k].nodeName == "ajaxdom"){
    for (var i = 0; i < xml.childNodes[k].childNodes.length; i++){
    var cmdFnName;
    var cmdFnParam;
    var cmdFnParamString = '';
    var xmlFnData;

    if (xml.childNodes[k].childNodes[i].nodeName == "cmditem"){
    for (var j = 0; j < xml.childNodes[k].childNodes[i].attributes.length; j++) {//解析命令
    if (xml.childNodes[k].childNodes[i].attributes[j].name == "ajaxCmd") {
    cmdFnName = xml.childNodes[k].childNodes[i].attributes[j].value;
    }else if (xml.childNodes[k].childNodes[i].attributes[j].name == "cmdParam") {
    cmdFnParam = xml.childNodes[k].childNodes[i].attributes[j].value;
    cmdFnParams = cmdFnParam.split('|');
    for(var f = 0; f < cmdFnParams.length ; f++){
    cmdFnParamString += ",'" + cmdFnParams[f] +"'"
    }//end for f
    }
    }//end for j

    if(xml.childNodes[k].childNodes[i].hasChildNodes() != false){
    xmlFnData = xml.childNodes[k].childNodes[i].firstChild.data;
    //alert("xmlFnData");
    }else{
    xmlFnData = null;
    }
    eval("(this."+cmdFnName+"('" + xmlFnData + "'" + cmdFnParamString + "))");
    }//end if delete cmdFnName;
    delete cmdFnParam;
    delete cmdFnParamString;
    delete xmlFnData;
    }//end for i
    }//end if 
    }//end for k
    }
      

  6.   

    试试这样:eval("\"this.\"+cmdFnName+\"('\" + xmlFnData + \"'\" + cmdFnParamString + \")\"");
      

  7.   


    直接加入数据可以应该是xmlFnData数据解析不出来