2011-06-19 22 views
12

Soy consciente del hecho de que el objeto FileReader no está disponible en Safari 5.0.5. Tengo un script que lo utiliza y pensó que yo acababa de ser capaz de detectar si existe el objeto de ejecutar un código alternativo, como se sugiere aquí,Javascript FileReader detección en Safari

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

Así que mi código es,

if(FileReader) 
{ 
    //do this 

}else{ 

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

El problema es que lo probé en Safari y, una vez que llega a la instrucción if, aparece este error y el script deja de ejecutarse.

ReferenceError: No se encuentra la variable: FileReader

Así que, obviamente eso no es la mejor manera de tratar con él entonces? ¿Alguna idea de por qué esto no funciona?

+0

es FileReader compatible con Safari 5.1.5? También recibo un error en 5.1.5. –

+0

No. Posible en 5.2: http://caniuse.com/filereader – forresto

Respuesta

7

Puede escribir if (typeof FileReader !== "undefined")

También puede utilizar la biblioteca Modernizr para comprobar por usted.

+0

Genial, muchas gracias por eso – barry

+0

¿Por qué se ha eliminado? – jayarjo

+0

@jayaro: ¿Qué? – SLaks

28

Creo en su caso, usted puede conseguir lejos con un cheque simple:

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

cheque para el tipo si realmente quieres ser granular y exigente.

+0

de acuerdo. Debe solicitar window.FileReader, de lo contrario se producirá un ReferenceError no detectado (observado en Android 2.3) –

1

O puede hacer algo como esto.

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