Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML4相当于HTML5';什么是文件阅读器?_Javascript_Cross Browser - Fatal编程技术网

Javascript HTML4相当于HTML5';什么是文件阅读器?

Javascript HTML4相当于HTML5';什么是文件阅读器?,javascript,cross-browser,Javascript,Cross Browser,我有一个网页,需要能够从运行浏览器的本地机器将文件加载到DOM中。我发现使用HTML5文件API很容易做到这一点 我可以做到: var reader = new FileReader(); reader.onload = function (fileContents) { ... load contents to a div ... } reader.readAsText(f) //where f is an HTML5 File object 令人烦恼的是,我需要在IE7中使用它,还有一

我有一个网页,需要能够从运行浏览器的本地机器将文件加载到DOM中。我发现使用HTML5文件API很容易做到这一点

我可以做到:

var reader = new FileReader();  
reader.onload = function (fileContents) { ... load contents to a div ... }
reader.readAsText(f) //where f is an HTML5 File object
令人烦恼的是,我需要在IE7中使用它,还有一些不支持API的Firefox早期版本。在旧浏览器中,有没有简单的方法将本地文件加载到DOM中


非常感谢

不,在旧浏览器中不能这样做。FileReader(任何文件系统访问)是HTML5的一项新功能,在旧浏览器中不受支持

在旧浏览器中,您的最佳选择是:

  • 在客户端运行并具有本地文件系统访问权限的Silverlight、Flash或Java应用程序(或类似应用程序)
  • 让用户使用
    元素上传文件,并在服务器端进行处理

  • 看起来你可以通过Flash来实现

    除了这里的其他答案之外,对于较旧的浏览器,似乎没有一致的客户端(Flash除外)方法

    然而,对于IE7/8,我已经设法使用ActiveX将一些东西组合起来

    var filePath = f:\oo.txt;
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var textStream = fso.OpenTextFile(filePath);
    var fileData = file.ReadAll();
    

    然后我可以将其传递给与上面问题中reader.onload相同的函数。显然,这是一个糟糕的、黑客式的解决方案,并且容易被某些安全策略阻止——但它至少对IE7有效

    文件API——不是HTML5的一部分(仅供记录)嘿,Jon,我在看这个例子,但我得到了一个错误:自动化服务器无法创建对象。我想?你需要进入internet选项->安全->自定义级别,然后启用“初始化并为ActiveX控件编写脚本(未标记为脚本安全)”,这是正确的,但是有一种IFrame方法也可以工作,无需使用任何浏览器插件或额外的服务器端处理,尽管有点黑客。。。请看下面我的答案或查看此。。。。