Safari中的JavaScript FileReader检测

12

我知道在Safari 5.0.5中没有FileReader对象。 我有一个使用它的脚本,认为我只需要检测对象是否存在以运行一些备用代码,就像在这里建议的那样。

http://www.quirksmode.org/js/support.html

所以我的代码是,

if( FileReader )
{
    //do this

}else{

    //the browser doesn't support the FileReader Object, so do this
}

问题是,我在Safari中测试过,一旦它到达if语句,我就会收到此错误并停止运行脚本。
ReferenceError: Can't find variable: FileReader 显然这不是最好的解决方法吧?有任何想法为什么这不能工作?

Safari 5.1.5支持FileReader吗?我在5.1.5中也遇到了错误。 - Chirag Mehta
不可能在5.2中实现:http://caniuse.com/filereader - forresto
3个回答

30

我认为在你的情况下,你可以使用更简单的检查:

if(window.FileReader) {
   //do this
} else {
   //the browser doesn't support the FileReader Object, so do this
}

如果您想更加细致和挑剔地处理类型,请检查类型。


同意。否则会出现未捕获的引用错误(在Android 2.3上观察到),您必须请求window.FileReader。 - John Clarke Mills

7

您可以编写 if (typeof FileReader !== "undefined")

您也可以使用Modernizr库来检查。


2
或者你可以像这样做。
if('FileReader' in window) {
    // FileReader support is available
} else {
    // No support available
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接