3

HTML5が提供する新しいFormDataクラスを使用してWebアプリを作成しています。

カスタムスタイルの「ファイルを選択」ボタンを使用するには、JavaScriptを介してfile-input要素のクリックイベントをトリガーします。

これはIE10とChromeで機能しますが、フォームを使用してFormDataインスタンスを作成しようとすると、IE10で失敗し、次の行に「SCRIPT5'AccessDenied'」というメッセージが表示されます。

var fd = new FormData(f.get(0));

ネイティブ入力要素を使用してファイルを開くダイアログをトリガーすると、IE10でも機能します。

テストについては、次のjsfiddleを参照してください:http://jsfiddle.net/s9aTg/2/

IE10でこれを機能させるオプションはありますか、それとも醜いデフォルトの「ファイルを選択」ボタンで立ち往生していますか?

よろしくお願いします、マクファーレン

4

3 に答える 3

0

バージョン10でも、独自のスタイルのIE :)

解決策はわかりませんが、この回避策が役立つかもしれません。スタイル設定されたボタンの上に透明な入力要素を配置してみてください。

<span class="open-wrapper">
    <input type="file" name="file" />
    <span class="open">open Dialog</span>
</span>

..。

.open-wrapper {
    position: relative;
    display: inline-block;
    overflow: hidden;
    vertical-align: middle;
}
.open-wrapper input {
    position: absolute;
    right: 0;
    opacity: 0;
}

http://jsfiddle.net/UKV3B/

于 2012-11-20T15:43:07.907 に答える
0

確認できませんが、データを追加してみてください。

var formData = new FormData();
var files = event.originalEvent.target.files || event.originalEvent.dataTransfer.files;
$.each(files, function () {
  formData.append("files[]", this);
});
于 2012-10-29T16:23:16.240 に答える