大家帮我看看如何用JavaScript读取ini文件...
test.ini文件如下
[COM-A]
ERR1 = "aaaaaaaaaa"
ERR2 = "bbbbbbbbbb"
ERR3 = "cccccccccc"[COM_B]
ERR1 = "aaaaaaaaaa"
ERR2 = "bbbbbbbbbb"
ERR3 = "cccccccccc"function ReadErrIni(com,err){
  var rtnVal;
  //通过com,err两个参数在test.ini中查找对应的字符串,并赋值给rtnVal
  ...
  ...
  return rtnVal;
}

解决方案 »

  1.   

    <body>
    <!-- 
    [COM-A] 
    ERR1 = "aaaaaaaaaa" 
    ERR2 = "bbbbbbbbbb" 
    ERR3 = "cccccccccc" [COM_B] 
    ERR1 = "aaaaaaaaaa" 
    ERR2 = "bbbbbbbbbb" 
    ERR3 = "cccccccccc"
    -->
    <div id="div0"></div>
    </body>
    <!--<script type="text/javascript" src="http://files.cnblogs.com/sohighthesky/jquery-1.4.min.js"></script>-->
    <script type="text/javascript">
    var str=document.body.childNodes[0].innerHTML
    function ReadErrIni(com,err){ 
      var reg=new RegExp("\\["+com+"\\][\\s\\S]*?"+err+"\\s*=\\s*\"([^\"]+)\"");
      return (str.match(reg) ||["",null])[1]
    }var res=ReadErrIni("COM-A","ERR2");
    alert(res)
    </script>
    </html>
      

  2.   

    test.ini比如是放在“D:\test.ini”下,要先去打开这个文件,ReadErrIni(com,err)要是一个比较共通的,res=ReadErrIni("COM-A","ERR2")是可以但是如果换成res=ReadErrIni("COM-B","ERR2")您看看还有结果吗,您能不能帮我再考虑下其他方法啊
      

  3.   

    如果是在web程序中使用,并且是在客户端使用,是不能读取客户端文件的。如果在服务器端,服务器端的方法和语言有很多
      

  4.   

    <script>
        var comList=[];
        (function(){
            var fso, filehandle;
            fso = new ActiveXObject("Scripting.FileSystemObject");        filehandle = fso.OpenTextFile("C:\\作業フォルダ\\ページ\\test.ini",1,false,0);
            
            regCom=/^\[([^]]+)\]/;
            regErr=/^(ERR\d+)\s*[=]\s*["]([^\"]+)["]/;
            var com="";
            while(!filehandle.AtEndOfStream){
                var ss=filehandle.ReadLine();
                if(regCom.test(ss)){
                    com=RegExp.$1;
                    comList[com]=[];
                    //document.write(RegExp.$1+"<br>");
                }else if(regErr.test(ss)){
                    comList[com][RegExp.$1]=RegExp.$2;
                    //document.write(RegExp.$1 + " : " + RegExp.$2+"<br>");
                }
            }
            
            filehandle.Close();
            fso=null;
        })();
        function ReadErrIni(com,err){
            return comList[com][err];
        }
        
        document.write(ReadErrIni("COM-A","ERR1"));
        document.write(ReadErrIni("COM_B","ERR2"));
    </script>
      

  5.   

    顶。
    都是php什么的用到配置文件。js没必要用这个。
      

  6.   

    定义了啊
        function ReadErrIni(com,err){
            return comList[com][err];
        }
      

  7.   

    <script>
        var comList=[];//Ini Content
        
        //读取ini文件
        function GetIniList(){
            var fso, filehandle;
            fso = new ActiveXObject("Scripting.FileSystemObject");        filehandle = fso.OpenTextFile(yourFilePath,1,false,0);//Replace yourFilePath here
            
            regCom=/^\[([^]]+)\]/;
            regErr=/^(ERR\d+)\s*[=]\s*["]([^\"]+)["]/;
            var com="";
            while(!filehandle.AtEndOfStream){
                var ss=filehandle.ReadLine();
                if(regCom.test(ss)){
                    com=RegExp.$1;
                    comList[com]=[];
                    //document.write(RegExp.$1+"<br>");
                }else if(regErr.test(ss)){
                    comList[com][RegExp.$1]=RegExp.$2;
                    //document.write(RegExp.$1 + " : " + RegExp.$2+"<br>");
                }
            }
            
            filehandle.Close();
            fso=null;
        }
        
        //通过com,err两个参数在test.ini中查找对应的字符串,并赋值给rtnVal 
        function ReadErrIni(com,err){
            return comList[com][err];
        }
        
        GetIniList();//Run
        
        //Test Code
        document.write(ReadErrIni("COM-A","ERR1"));
        document.write(ReadErrIni("COM_B","ERR2"));
    </script>
      

  8.   

    也来个劳力活:
    test.ini:[COM-A]
    ERR1 = "aaaaaaaaaa"
    ERR2 = "bbbbbbbbbb"
    ERR3 = "cccccccccc"[COM_B]
    ERR1 = "dddddddddd"
    ERR2 = "eeeeeeeeee"
    ERR3 = "ffffffffff"[COM_C]
    ERR1 = "gggggggggg"
    ERR2 = "hhhhhhhhhh"
    ERR3 = "iiiiiiiiii"[COM_D]
    ERR1 = "jjjjjjjjjj"
    ERR2 = "kkkkkkkkkk"
    ERR3 = "llllllllll"HTML:<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <textarea id="txt1" style="width:300px;height:300px"></textarea>
    <textarea id="txt2" style="width:300px;height:300px"></textarea><br><script type:text/javascript>
    function openText(path,argX,argY){
             var FSO = new ActiveXObject("Scripting.FileSystemObject");
             !!! FSO.FileExists(path) && alert("文件不存在");
             var forAppending = 1;
             var Txt = FSO.OpenTextFile(path);
             var str = Txt.ReadAll();
             Txt.close();
             FSO = null;
             document.getElementById('txt1').value = str;
             str = str.replace(/(".*")/g,"$1,").replace(/=/g,":").replace(/[^\]]+(?=\[|$)/g, function(o){return o.replace(/$/g,"}")}).
             replace(/\[(.*?)\]/g, ",\"$1\" : {").replace(/,[\s|\n|\r]*\}/g,"}").replace(/^,/g,"var Json = {")+"}";
             document.getElementById('txt2').value = str;
             eval(str);
             return Json[argX][argY]
    }
    </script><input type="button" value="打开文件" onclick="alert(openText('test.ini','COM-A','ERR3'))">
      

  9.   


    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <textarea id="txt1" style="width:300px;height:300px"></textarea>
    <textarea id="txt2" style="width:300px;height:300px"></textarea><br><script type:text/javascript>var openText = (function(path){
             var FSO = new ActiveXObject("Scripting.FileSystemObject");
             !!! FSO.FileExists(path) && alert("文件不存在");
             var forAppending = 1;
             var Txt = FSO.OpenTextFile(path);
             var str = Txt.ReadAll();
             Txt.close();
             FSO = null;
             document.getElementById('txt1').value = str;
             str = str.replace(/(".*")/g,"$1,").replace(/=/g,":").replace(/[^\]]+(?=\[|$)/g, function(o){return o.replace(/$/g,"}")}).
             replace(/\[(.*?)\]/g, ",\"$1\" : {").replace(/,[\s|\n|\r]*\}/g,"}").replace(/^,/g,"var Json = {")+"}";
             document.getElementById('txt2').value = str;
             eval(str);
             return function(argX,argY){
                    return Json[argX][argY]
             }
    })('test.ini')document.write(openText('COM-A','ERR2')+"</br>");
    document.write(openText('COM_B','ERR2')+"</br>");
    document.write(openText('COM_C','ERR2')+"</br>");
    document.write(openText('COM_D','ERR2'));</script>
      

  10.   

    test.ini:[COM-A]
    ERR1 = "aaaaaaaaaa"
    ERR2 = "bbbbbbbbbb"
    ERR3 = "cccccccccc"[COM_B]
    ERR1 = "dddddddddd"
    ERR2 = "eeeeeeeeee"
    ERR3 = "ffffffffff"[COM_C]
    ERR1 = "gggggggggg"
    ERR2 = "hhhhhhhhhh"
    ERR3 = "iiiiiiiiii"[COM_D]
    ERR1 = "jjjjjjjjjj"
    ERR2 = "kkkkkkkkkk"
    ERR3 = "llllllllll"HTML:<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <textarea id="txt1" style="width:300px;height:300px"></textarea>
    <textarea id="txt2" style="width:300px;height:300px"></textarea><br><script type=text/javascript>var openText = (function(path){
             var FSO = new ActiveXObject("Scripting.FileSystemObject");
             !!! FSO.FileExists(path) && alert("文件不存在");
             var forAppending = 1;
             var Txt = FSO.OpenTextFile(path);
             var str = Txt.ReadAll();
             Txt.close();
             FSO = null;
             document.getElementById('txt1').value = str;
             str = str.replace(/\[(.+?)\]/g,"},\n   \"$1\":{").replace(/([^\s]+)[\s*]=[\s*]([^\s]+)/g,"      \"$1\":$2,").replace(/(,[^,]*\})|(,[^,]*$)/g,"\n   }").replace(/^\},/g,"var Json = {")+"\n}";
             document.getElementById('txt2').value = str;
             eval(str);
             return function(argX,argY){
                    return Json[argX][argY]
             }
    })('test.ini');document.write(openText('COM-A','ERR2')+"</br>");
    document.write(openText('COM_B','ERR2')+"</br>");
    document.write(openText('COM_C','ERR2')+"</br>");
    document.write(openText('COM_D','ERR2'));</script>