フロントエンド開発Blog

オレには鈍器がある

IE , JavaScript , file

結構有名な話かもしれませんが備忘録に記載いたします。

http://jsdo.it/oredon/86Uv

IE全般はJavaScriptを介したinput:fileへの干渉ができません。
※正確には、JavaScript自体は動作するものの、value値が空となり、サーバサイドへファイル送信できませんでした

それでもデザイン上の理由から、input:fileを生のまま使いたくないニーズがあるかもしれません。
はじめは「:fileを非表示、表示ボタンクリックで:fileにclickイベント送信」で実装しましたが
IEのセキュリティ制限上、Postデータが空になってしまう仕様の壁に突き当たりました。

そこで「見栄え部分に実体たるinput:fileを透明にして上レイヤーに乗せる」方法を取りました。

結構強引な感じは否めませんが、これで何とか動きました。

ページトップへ

関連ページ

ページトップへ