Я работаю над расширением Chrome, где мне нужно нажать на <input type='file' />
в javascript через jQuery, чтобы открыть диалоговое окно «Сохранить как».Да, мне сказали - большинство браузеров не позволяют вам делать это.Однако я обнаружил кое-что очень странное - я могу щелкнуть элемент ввода файла (и открыть всплывающее окно «Сохранить»), если я сделаю это через адресную строку, например:
javascript: $("<input type='file' />").appendTo("body").click();
Итак, я подумал, что если бы я мог сделать это там, то, конечно, я мог бы сделать это из своего скрипта контента ...
Очевидно, я был неправ.Запуск $("<input type='file' />").appendTo("body").click();
из моего скрипта содержимого не только добавляет zilch к добавлению элемента, но даже эмулирует адресную строку и делает window.location = "javascript: $(\"<input type='file' />\").appendTo(\"body\").focus().click();";
zilch .
Сначала я думал, чтоможет быть, это было какое-то ограничение chrome в контентных скриптах, но я ошибаюсь - расширение jsShell , которое работает через контентный скрипт, может запускать команды и получать желаемые результаты без помех.
Итак, кто-нибудь знает, почему jsShell и браузер могут щелкнуть файл ввода и получить диалоговое окно Сохранить, но мое расширение не может?Я пытался разобрать jsShell и выяснить, как он работает (хотя я не вижу ничего особенного в том, как он работает), но он все еще не работает.И консоль ничего не показывает - ни ошибок, ни предупреждений.
Это заставляет мою голову перегреваться, поэтому любая помощь очень ценится!