2011-06-19 24 views
12

Jestem świadomy faktu, że obiekt FileReader nie jest dostępny w Safari 5.0.5. Mam skrypt, który używa go i myślałem, że ja po prostu być w stanie wykryć, czy obiekt istnieje jakiś alternatywny do uruchomienia kodu, jak sugeruje tutaj,Wykrywanie FileReadera Javascriptem w Safari

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

Więc mój kod jest

if(FileReader) 
{ 
    //do this 

}else{ 

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

Problem polega na tym, że przetestowałem go w Safari i gdy trafi on w instrukcję if, otrzymam ten błąd i skrypt przestanie działać.

ReferenceError: Nie można odnaleźć zmienna: FileReader

Tak oczywiście nie jest to najlepszy sposób na radzenie sobie z nim wtedy? Masz pomysł, dlaczego to nie działa?

+0

Czy FileReader jest obsługiwany w Safari 5.1.5? Otrzymuję również błąd w wersji 5.1.5. –

+0

Nie. Możliwe w 5.2: http://caniuse.com/filereader – forresto

Odpowiedz

7

Możesz napisać if (typeof FileReader !== "undefined")

Można również korzystać z biblioteki Modernizr sprawdzić dla ciebie.

+0

Świetnie, bardzo dziękuję za to – barry

+0

Dlaczego został usunięty ?! – jayarjo

+0

@jayaro: Co? – SLaks

28

wierzę w twoim przypadku można uciec z prostszej czeku:

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

czek typu, jeśli naprawdę chce być granulowany i wybredna.

+0

Uzgodnione. Musisz poprosić o window.FileReader w przeciwnym razie pojawi się Uncaught ReferenceError (obserwowany w systemie Android 2.3) –

1

Albo możesz zrobić coś takiego.

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