<script type ="text/javascript">
        function readFile() {
            var fso = new ActiveXObject("Scripting.FileSystemObject");
                   
          var  url = document.getElementsByTagName("file")
  
            var file = fso.OpenTextFile(url, 1, false);
            while (!file.atendofstream) {
                var content = file.ReadAll();
            }            file.close();
            alert(content);
        }
       
   
    </script>
<input id="Button1" type="button" value="button" onclick="readFile();" />
    <input id="File1" type="file"  value="" name ="file"/ >
弹出的是undefined,为什么?

解决方案 »

  1.   


    var file = fso.OpenTextFile(url, 1, false);    //这一句里取出来的 file 是文件路径?
    楼主是想读出所选择的文件的内容?
      

  2.   

    目测是这句出问题:var url = document.getElementsByTagName("file")你的html文件里并没有tag为file的标签。注意<input id="File1" type="file" value="" name ="file"/ >的标签名并不是file,而是input。
      

  3.   

    var url = document.getElementsByTagName("file")
    你这句取的只是一系列的控件,并不是控件值,你可以尝试一下
    var url = document.getElementsByTagName("file")[0].value如果不行那请贴出你的HTML
      

  4.   

    var url = document.getElementsById("File").value
      

  5.   

    var file = fso.OpenTextFile(url, 1, false);
      while (!file.atendofstream) {
      var content = file.ReadAll();
      }  file.close();
      alert(content);
      }你定义的content是局部变量。你说在循环外面还能取到值麽
        
      

  6.   

    var url = document.getElementsByTagName("file")
    修改如下:
    var url = document.getElementById("File1").value 或者 var url = document.getElementsByName("file").value
      

  7.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>    
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head><body onload="">
    <script type ="text/javascript">
      function readFile() {
      var fso = new ActiveXObject("Scripting.FileSystemObject");
      
      alert(fso);
    var url = document.getElementById("File1").value;
    alert(url);
    var file = fso.OpenTextFile(url,1, false);
     // alert(file);
      while (!file.atendofstream) {
      var content = file.ReadAll();
      }  file.close();
      alert(content);
      }
       
     
      </script>
    <input id="Button1" type="button" value="button" onclick="readFile();" />
      <input id="File1" type="file" value="" name ="file"/ >
    </body>
    </html>
      

  8.   

    有两个问题
      只能用ID取到INPUT的value ,不能用name取到该value值;
      而且这个ActiveXObject("Scripting.FileSystemObject")操作文件方法在火狐中无效。据说火狐不支持获取url的方法。而且我查了半天,也没找出同样效果的兼容办法。
      不知哪位大牛有办法解决?
      

  9.   

    恩,就是document.getElementById("File1").value的问题,用document.getElementById("File1").value 就对了。
      

  10.   


     function readFile() {
                var fso = new ActiveXObject("Scripting.FileSystemObject");
                var url = document.getElementsByTagName("input")[1].value; //or document.getElementByID("File1").value
                var file = fso.OpenTextFile(url, 1, false);
                while (!file.atendofstream) {
                    content = file.ReadAll();
                }
                file.close();
                alert(content);
            }