12

我知道 FileReader 对象在 Safari 5.0.5 中不可用。我有一个使用它的脚本,并认为我只能检测对象是否存在以运行一些备用代码,如此处所建议的,

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:找不到变量:FileReader

那么显然这不是处理它的最佳方法吗?知道为什么这不起作用吗?

4

3 回答 3

30

我相信在您的情况下,您可以通过更简单的检查来摆脱困境:

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

如果您真的想要细化和挑剔,请检查类型。

于 2011-07-19T15:12:46.017 回答
7

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

您还可以使用Modernizr库为您检查。

于 2011-06-19T16:57:42.353 回答
2

或者你可以做这样的事情。

if('FileReader' in window) {
    // FileReader support is available
} else {
    // No support available
}
于 2011-10-17T12:24:40.927 回答