Открыть окно просмотра в IE при однократном вводе файла - PullRequest
11 голосов
/ 16 декабря 2011

У меня проблемы с тем, чтобы заставить файл работать так, как я хочу.Элемент файла состоит из двух частей: текстового поля и кнопки просмотра.В других браузерах, отличных от IE, нажатие любого из них открывает окно, в котором вы можете выбрать свои файлы.В IE, однако, он открывается только тогда, когда я нажимаю кнопку обзора.Если я щелкаю текстовое поле рядом с ним, я должен дважды щелкнуть, чтобы открыть окно.Есть ли способ исправить это с помощью JavaScript, чтобы один щелчок по текстовому полю также открывал окно?Я попробовал следующее, но это не сработало.(код значительно упрощен по сравнению с реальным примером)

Html: <input id="file" name="file" type="file"/>

JS / jQuery:

$("#file").click(function(){
    $(this).trigger("dblclick");
});

$("#file").dblclick(function(){
    alert("Double");
});

Теперь приведенный выше код предупреждает "Double", ноне открывается окно.Есть ли способ это исправить?

Заранее спасибо.

Ответы [ 2 ]

9 голосов
/ 19 декабря 2011

Поскольку весь элемент управления является родным для браузера (и никогда не отображается в виде текстового поля с кнопкой), у вас просто нет доступа к методам / событиям, которые позволят вам вызвать кнопку загрузки. Я считаю, что это главным образом для того, чтобы сайты не обманывали пользователя при загрузке не предназначенных файлов.

Если вам удастся потратить немного времени на внедрение обходного пути, this отлично справится с задачей создания довольно удобного компонента загрузки, которым проще управлять. Я уверен, что быстрый Google перечислит вам много других примеров того, как стилизовать компонент загрузки файлов.

0 голосов
/ 16 декабря 2011

Только что протестировал ваш код с JSFiddle на IE6 (http://jsfiddle.net/SUWRK/), и, насколько я понимаю, он работает так, как вы ожидаете ... Предупреждение появляется при событии одним щелчком мыши (обратите внимание, что ловить dblclick сложно)событие в IE <9 - см. <a href="https://gist.github.com/399624" rel="nofollow">https://gist.github.com/399624).

Вы уверены, что больше ничего не происходит с большим набором кодов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...