Вы можете имитировать поведение Firefox с помощью следующего:
<input type="file" name="test" onkeypress="this.click();return false;">
Когда пользователь пытается ввести введенный файл, он открывает окно выбора файлов.
Очевидно, что это не сработает, если на клиенте отключен JavaScript, но в зависимости от ваших требований он может быть "достаточно хорошим".
Кажется, работает нормально в IE 6, 7 и 8.
В Firefox 3 все работает нормально (поскольку не позволяет набирать <input type=file>
).
В Safari для Windows 3 и 4 все работает нормально (поскольку не позволяет набирать <input type=file>
).
В Opera 9 (которая позволяет набирать <input type=file>
) он ничего не делает (не выскакивает и не глотает нажатия клавиш). Событие onkeypress
, похоже, вообще не срабатывает, вероятно, для безопасности.
В Firefox 2 он не работает (что позволяет набирать <input type=file>
), потому что this.click()
не выскакивает в меню выбора и return false
глотает нажатия клавиш.