2013-03-02 3 views
1

Я пытаюсь программно имитировать пользователя, нажимающего на вход типа элемента html: файл для загрузки файла на сайт с javascript в браузере Firefox. Следующие JavaScript кодов в моем файле JavaScript имитирует и открывают диалоговое окно файла:Как имитировать выбор файла с помощью javascript?

var target_element; 
var dispatchMouseEvent = function(target, var_args) { 
    var e = document.createEvent("MouseEvents"); 
    e.initEvent.apply(e, Array.prototype.slice.call(arguments, 1)); 
    target.dispatchEvent(e); 
}; 

target_element = window.content.document.getElementById("DivElement"); 
dispatchMouseEvent(target_element, 'mouseover', true, true); 
dispatchMouseEvent(target_element, 'mousedown', true, true); 
dispatchMouseEvent(target_element, 'mouseup', true, true); 
dispatchMouseEvent(target_element, 'click', true, true); 

, но я не могу найти способ моделирования программно выбора файла в диалоге файла, как пользователь выбора файла и нажмите кнопку «Открыть диалог». Можно ли это сделать с помощью javascript?

+1

javascript-коды в файле javascript: –

+0

Если вы ищете автоматическое тестирование, посмотрите на этот вопрос, эти инструменты могут имитировать это; http://stackoverflow.com/questions/4043706/automated-testing-of-css-and-html-front-end-coding – thaJeztah

ответ

3

Это будет невозможно, и не без оснований. Если вы можете автоматизировать выбор файла на стороне клиента, вы откроете дверь для серьезных нарушений безопасности и конфиденциальности.

+0

спасибо за ваш ответ. Так можно ли отправить/загрузить файл с помощью javascript без открытия диалогового окна файла? Я вижу некоторые приложения, такие как iMacros, которые без проблем могут имитировать файл, загруженный на сайт. Итак, я думаю, это должно быть возможно сделать в javascript? –

+1

просто представьте, что какой-то случайный кодер может получить любой файл с вашего компьютера и загрузить его, не заметив его, поэтому по соображениям безопасности вы не можете загружать что-то без участия пользователя –

+0

Я думаю, что есть недоразумение. Я говорю о javascript, выполняющемся на стороне пользователя, как клиентский браузер, а не javascript, запущенный со стороны сервера. Как вы хотите, чтобы в этом случае были проблемы с безопасностью? Mozilla firefox имеет множество библиотек для доступа к файловым системам, я разрабатываю тонны скриптов, которые не делают этого, никаких проблем с безопасностью. Все, что сделано пользователем, может быть сделано программно, проблема в моем случае - это открытие файла, поэтому я не могу найти способ ссылаться на этот диалог с javascript. –