IE和本地文件读取

use*_*704 6 javascript internet-explorer fileapi

我刚看过mozilla File API文件读取为

new FileReader();
Run Code Online (Sandbox Code Playgroud)

我必须要问IE是否有类似的东西?

dur*_*uri 8

是的,您可以使用ActiveX'FileSystemObject.但是,每次运行代码时都会向用户显示一个确认框.某些用户可能不信任您,可能选择不运行ActiveX控件.此外,请注意,一些用户还使用不支持FileReader的非IE浏览器(Safari,旧版本的Firefox等).通过添加ActiveX,您仍然不会100%支持与文件相关的API.

  • 有没有一种支持crossbrowser文件的方法? (2认同)

Sam*_*son 8

Internet Explorer 10还支持FileReader:

var reader = new FileReader();
reader.onloadend = function(){
    // do something with this.result
}
reader.readAsText(readFile);
Run Code Online (Sandbox Code Playgroud)

有关FileReader的托管兼容性表,请务必查看caniuse.com.

如果您想为那些可能未在Internet Explorer 10中访问您的站点的人提供后备,我建议您进行一些功能检测,以确定是否要使用FileReader:

if ( window.FileReader ) {
    /* Use the FileReader */
} else {
    /* Do something else */ 
}
Run Code Online (Sandbox Code Playgroud)

另请注意,使用ActiveXObject方法不一定能够始终工作,因为某些用户在启用ActiveX筛选时浏览,这意味着您无法触摸其文件系统,或在浏览器中运行任何类型的插件.