Мы хотим уменьшить количество шагов, необходимых для загрузки пользователем файла на нашем веб-сайте; поэтому мы используем jQuery для открытия и обратной передачи файлов с использованием следующей разметки (упрощенной):
<a onclick="$('#uplRegistrationImage').click();">
Change profile picture
</a>
<!-- Hidden to keep the UI clean -->
<asp:FileUpload ID="uplRegistrationImage"
runat="server"
ClientIDMode="static"
Style="display:none"
onchange="$('#btnSubmitImage').click();" />
<asp:Button runat="server"
ID="btnSubmitImage"
ClientIDMode="static"
Style="display:none"
OnClick="btnSubmitImage_OnClick"
UseSubmitBehavior="False" />
Это отлично работает в Firefox и Chrome; открытие диалогового окна файла при нажатии ссылки и запуск обратной передачи при выборе файла.
Однако в IE9 после загрузки файла загрузился и пользователь выбрал файл; insteaed работы OnChange, я получаю сообщение об ошибке "SCRIPT5 Access denied". Я попытался установить произвольный тайм-аут, установив интервалы, чтобы проверить, предоставлен ли файл безрезультатно.
Есть ряд других вопросов, связанных с этим; однако ни один из них не имеет достойного ответа (один сказал, чтобы диалоговое окно файла было прозрачным и зависало за кнопкой!)
Кто-нибудь еще разрешил это? Или абсолютно необходимо, чтобы я предоставлял кнопку пользователям IE?