2012-04-27 5 views
0

インターネットエクスプローラは、次のコードは、このエラーを生成している:Internet Explorerのプロパティのヌル値にJavascriptが壊れています - これを無視するにはどうすればよいですか?

SCRIPT5007: Unable to get value of the property '0': object is null or undefined for "document.getElementById('files').files[0]

それはファイルが[0]はnullですが、私は私が言うことができるか、気にしないことを...正しいですIEは気にしない?

おかげ

+1

について謝罪?これは、エラーが意味するものと思われる。 –

+0

@DarkFalconはい、私はそれを考えなかったとは思えません。皆さん、お返事ありがとうございます –

答えて

3
var elem = document.getElementById('files'), 
    file = elem.files && elem.files[0]; 

ファイルが定義されていない場合、これは短絡し、undefinedを返します。そうでない場合、最初のファイルが返されます。

説明のポイント、エラーは、にアクセスすると、エラーが発生していることを示しています。は、エラーの原因となります。filesは未定義の変数です。それがfiles[0]の場合、式はちょうどundefinedを返します。デニスは、エラーがファイルが未定義の変数であると私は問題がIE9であることを確信していることを示して言うように

2

試してみてください...

var file; 
if (document.getElementById('files').files){ 
    file = document.getElementById('files').files[0]; 
} 
+0

'files'が未定義のオブジェクトであるため、これは失敗します。長さをチェックすると0と同じ問題が発生します。 – Dennis

+0

良い点!更新されました... – jcreamer898

0
var file = document.getElementById('files').files[0] || "undefined"; 
+0

これを試しましたが、依然としてエラーが発生しました –

1

これは非常に古いですが、私は私

のようにここに来て、誰のためにお答えしたいですファイルプロパティをサポートしていません。

ご覧のとおり、here IE10は再注文されています。

だから、これを試してみてください。

var file; 
try{ 
    file = document.getElementById('files').files[0]; 
}catch(error){ 
    file= null; 
} 

PSを:私はあなたが、それは `のdocument.getElementById( 'ファイル')nullではないfiles`をよろしいです、私の下手な英語

関連する問題