Инициировать ввод файла, чтобы открыть через JavaScript - PullRequest
1 голос
/ 23 декабря 2010

Итак, у меня есть вход, что-то вроде этого:

<input type="file" id="file" />

Я хочу, чтобы диалог открытия файла всплывал через javascript.Я пробовал такие вещи:

$('file').click();

(это предполагает, что я использую что-то вроде prototype / mootools / jquery).Тем не менее, это, похоже, ничего не делает.Можно ли в любом случае вызвать событие click для ввода файла, не заставляя пользователя взаимодействовать с вводом напрямую?

Ответы [ 4 ]

4 голосов
/ 23 декабря 2010

Я помню, что это невозможно из-за того, что это функция безопасности. На самом деле, я уверен, что кнопка для диалога просмотра файлов даже не отображается в DOM (отображается поле, но не та кнопка, которую браузер отображает автоматически)

3 голосов
/ 23 декабря 2010
$('file').click()

Это работает (в Chrome 8). Вам просто нужно убедиться, что он не настроен на отображение: нет;

Простое решение состоит в том, чтобы позиционировать его как абсолютное, а затем установить влево что-то вроде -1000px.

3 голосов
/ 23 декабря 2010

Насколько я знаю, открытие диалога открытия файла из javascript заблокировано по соображениям безопасности.

2 голосов
/ 23 декабря 2010

Браузеры IIRC не допускают этого в качестве механизма предосторожности. Сценарий не должен быть в состоянии каким-либо образом автоматически загрузить файл, и одним из таких способов может быть работа с диалогом открытия файла.

Очевидно, что в некоторых ситуациях это плохо ...

...