Javascript FileReader detection in Safari

barry picture barry · Jun 19, 2011 · Viewed 14.5k times · Source

I'm aware of the fact that the FileReader Object is not available in Safari 5.0.5. I have a script that uses it and thought that i'd just be able to detect whether the object exists to run some alternate code, as is suggested here,

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

So my code is,

if( FileReader )
{
    //do this

}else{

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

The problem is, i've tested it in Safari and once it hits the if statement i get this error and the script stops running.

ReferenceError: Can't find variable: FileReader

So obviously that's not the best way to deal with it then? Any idea why this doesn't work?

Answer

Assaf Moldavsky picture Assaf Moldavsky · Jul 19, 2011

I believe in your case you can get away with a simpler check:

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

check for the type if you really wanna be granular and picky.