Safari中的Javascript FileReader检测

时间:2011-06-19 16:55:44

标签: javascript safari filereader referenceerror

我知道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

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

3 个答案:

答案 0 :(得分:29)

我相信你的情况可以通过更简单的检查来解决:

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

检查类型,如果你真的想要细粒度和挑剔。

答案 1 :(得分:7)

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

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

答案 2 :(得分:1)

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

if('FileReader' in window) {
    // FileReader support is available
} else {
    // No support available
}