jQuery метод ввода файла клика и доступ запрещен в IE - PullRequest
2 голосов
/ 31 августа 2011

Я пытаюсь использовать только кнопку в качестве входного файла, она отлично работает в Firefox, Chrome, Safari, но не в IE ... Я всегда получаю «доступ запрещен» при отправке формы.

Код:

$('#input_file').click();

Есть ли реальное исправление для этого?Я потратил около 2 часов на Google, но я не могу найти его.

Ответы [ 3 ]

2 голосов
/ 28 мая 2013

Я нашел способ обойти это. Оберните кнопку в метки метки, как это:

<label for="fileinput"><div class="button">Upload file</div></label>


<form>
  <input id="fileinput" name="file" type="file">
</form>

Нажатие на метку приведет к вводу файла без аннулирования формы в Internet Explorer. (протестировано в IE9 и IE10)

РЕДАКТИРОВАТЬ: передать этот код IE и оставить решение javascript для других браузеров. Firefox не будет вызывать поле ввода файла при нажатии метки.

1 голос
/ 01 октября 2012

Я однажды видел этот кусок кода, я не помню где, но это обходной путь

  if ($.browser.msie) {
        // IE suspends timeouts until after the file dialog closes
        $flUpload.click(function (event) {
            setTimeout(function () {
                changeFunc();
            }, 0);
        });
    }
    else {
        // All other browsers behave
        $flUpload.change(changeFunc);
    }
0 голосов
/ 31 августа 2011

Безопасность песочницы "особенность" IE.Там нет никакого способа обойти это.Сожалею.Я использую ввод файла JQuery, но все еще должен определить IE и использовать базовый ввод IE, я потратил много времени на поиск ответов и не нашел ни одного.Вы можете использовать flash, что и делает uploadify , чтобы обойти безопасность IE.Я рекомендую это, это чертовски хороший плагин.

...