2011-06-19 12 views
12

Safari 5.0.5ではFileReaderオブジェクトが利用できないという事実に気付いています。私はそれを使用するスクリプトを持っていると私はちょうどここで提案されるように、オブジェクトは、いくつかの代替コードを実行するために存在しているかどうかを検出することができるだろうと考え、SafariでのJavascript FileReaderの検出

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の

だから、明らかにそれは、それに対処するための最良の方法ではありませんか?なぜこれがうまくいかないのでしょうか?

+0

は、Safari 5.1.5でサポートされているFileReaderですか? 5.1.5でもエラーが出ます。 –

+0

No. 5.2の可能性:http://caniuse.com/filereader – forresto

答えて

7

あなたはまた、あなたのためにチェックするModernizrライブラリを使用することができますif (typeof FileReader !== "undefined")

を書くことができます。

+0

大変ありがとうございます – barry

+0

なぜ削除されましたか? – jayarjo

+0

@jayaro:何ですか? – SLaks

28

私はあなたのケースであなたはシンプルなチェックを逃れることができると信じて:タイプの

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

チェックをあなたが本当にしたい粒状とうるさいことがあれば。

+0

合意。 window.FileReaderを要求する必要があります。そうでなければ、Uncaught ReferenceErrorが発生します(Android 2.3で確認されています) –

1

または、このようなことができます。

if('FileReader' in window) { 
    // FileReader support is available 
} else { 
    // No support available 
} 
関連する問題