我刚刚看到 mozilla File API 文件读取为
new FileReader();
等等,我必须问IE是否有类似的东西?
我刚刚看到 mozilla File API 文件读取为
new FileReader();
等等,我必须问IE是否有类似的东西?
是的,您可以使用ActiveX 的 FileSystemObject。但是,每次运行代码时都会向用户显示一个确认框。一些用户可能不信任您并且可能选择不运行 ActiveX 控件。另外,请注意,有些用户还使用不支持 FileReader 的非 IE 浏览器(Safari、旧版本的 Firefox 等)。通过添加 ActiveX,您仍然不会 100% 支持与文件相关的 API。
Internet Explorer 10 还支持FileReader:
var reader = new FileReader();
reader.onloadend = function(){
// do something with this.result
}
reader.readAsText(readFile);
有关 FileReader 的托管兼容性表,请务必查看caniuse.com。
如果您想为那些可能没有在 Internet Explorer 10 中访问您的网站的人提供备用方案,我建议您进行一些功能检测以确定是否要使用 FileReader:
if ( window.FileReader ) {
/* Use the FileReader */
} else {
/* Do something else */
}
另请注意,使用 ActiveXObject 方法不一定总是有效,因为某些用户在启用ActiveX 过滤的情况下进行浏览,这意味着您无法触摸他们的文件系统,或在他们的浏览器中运行任何类型的插件。