вызов стандартного окна "открыть"
Всем привет! Вот вопрос: при наличии такой конструкции:
<input type='file' /> При нажатии на кнопку выводится стандартное диалоговое окно с выбором файла, который надо "открыть".. Есть ли способ вызова такого окна через javascript? |
Сделайте прозрачный <input type='file' /> и разместите его над своей кнопкой.
|
Вот пример http://n-professor.ru/exemple/ajaxupload/
|
|
Logo,
прозрачный не сработает |
Сработает. opacity:0, для IE фильтр.
|
стоп стоп стоп. не во всех браузерах пройдёт-наложение сверху прозрачного элемента-некоторые при клике на нём привязывают событие к нижнему ,а для верхнего ,невидимого ,событие не существует как бы-хоть и клик реально был на нём и z индекс у него больше чем у нижнего. в фф пару месяцев назад на это налетал. накрыл контейнер сверху прозрачным контейнером
|
Цитата:
|
В ИЕ8 согласен косячно смотрится, но, думаю, можно хакнуть...
|
Serg_pnz,
перейди по ссылке что под постом-это статья к этому загрузчику смотри, джиквери написан на js. js-не позволяет получить полный путь к файлу из окна инпут файл.попробуй сам-то что видишь и получить value его-разницу увидишь сам. в итоге ,не факт,но в подключаемой библиотеке джиквери скорее всего используется флеш и библиотека только строит мост между скриптом и флеш статистику он не привёл как он работает у тех у кого флеш отключен |
Когда есть opacity:0 во всех браузерах которые я смотрел, событие всегда попадет на верхний элемент. Если блок с background:none, тогда событие может попадать на нижний элемент.
|
Цитата:
ну а для поисковиков-сайты на каких есть скрытые ,прозрачные ,сливающиеся с фоном элементы-такие сайты попадают под фильтры или в бан... |
Цитата:
|
Цитата:
|
Яндекс начал кричать, что если сайт содержит в себе скрытые элементы(сливающиеся с фоном, накрытые другими элементами), то таким сайтам прямая дорога в
|
kiff86,
А что если создать инпут и программно по нему кликнуть? Вы пробовали?, я просто слышал что по этому типу инпутов нельзя так. Хотя не уверен.. Попробуйте var input = document.createElement("INPUT"); input.type = "file"; var click = document.createEvent("MouseEvents"); click.initEvent("click", true, true); input.dispatchEvent(click); Это не кроссбраузерно, но для IE есть подобные методы, так что если получится, то вот и решение. |
Всем спасибо. Накрывалкой я пользуюсь.. смущает такие записи в цсс как альфа и опасити... они валидны? Я просто хотел бы создать что-нить свое, то есть ваще не юзать тег инпут файл.. Собсно и спросил ... А то плясать с бубном, опасити и т.п. не охота.. флеш, я так понял позволяет это делать? Просто надо его быренько изучить. Хочется нормальный (кроссбраузерный, легко изменяемый) загрузчик файлов.. с культурный дизайном.. почему свое- потому что в своем проще разобраться ну и как-то чувствуешь себя увереннее..
poorking, Такая фишка работает только в ие.. остальные браузеры за счет "безопасности" не позволяют этого сделать (програмно щелкнуть на кнопку...) |
Цитата:
|
Цитата:
2. Java (не JavaScript). Работать будет только у кого на компьютере установлена Java. P.S. input type="file" - html-элемент, у которого больше всего "закручены гайки" в целях безопасности. В интернете полно примеров, как сделать его покрасивее, пофункциональнее... Однако идеального решения нет. Смотря какие цели Вы ставите. Например, в некоторых броузерах на стороне Клиента из javascript нельзя получить полный путь к выбранному файлу (а казалось бы, почему??). Только после отправки файла на сервер можно узнать этот путь. Чтож поделаешь.. |
Цитата:
Цитата:
|
dmitriymar,
1. Прозрачный input[type="file"] это класический костыль. Он корректно работает во всех браузерах, не порите ерунду. 2. Прозрачные элементы часто используются в сложный интерфейсах, не говорите, что за них банят в поисковиках, это тоже полная чушь. |
Цитата:
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 02:04. |