Pull to refresh

Comments 53

Неплохо бы добавить noscript.
noscript нету в списке тегов хабры, да и скрипты все в
Дайте ссылку на страницу с демонстрацией :)
ага, про него и говорил. Сейчас добавлю.
Кстати, в сафари кнопка выбора находится совсем в другой стороне...
Это не имеет значения, сейчас попробовал в Сафари, он срабатывает по клику по любой части этого input элемента (как и FF3), а выравнивание все равно остается поправо. Так что "сэмулированная" кнопка все равно получается активной.
В FF2 вручную вбить имя файла у меня не получилось.
собственно это не является "стандартной" возможностью (а возможно даже вредной, вогнать бы туда скриптом файл пассвордов какой-нить и сабмитнуть на онлоде прямо) подобного инпута. Некоторые браузеры (Сафари и ФФ3, к примеру) вообще при клике на поле ввода запускают сразу выбор файла.
Уговорили =) в закладки.
Вы уверены, что такое возможно? :)
нет, как раз сейчас этим занимается спецификация file, запрещающая почти все манипуляции с инм через JS. Но, вообще, речь тут немного о другом шла.
вот один из подобных воркэраундов у меня не прокатил по причине "символьной" ширины контрола file, кажется и этот им страдает. В моем случае можно создать "пиксельно" точную ширину контрола.
Ну, если так, то буду только рад, если решение уже кому-то пришло в голову. Я на оригинальность не претендую, идея довольно простая.
swf-upload юзаем, и костумайзем все как хотим :)
Фул фьючед демо
На нем, впринципе, можно сделать любые формы + красивый статус закачки :)
Единственное, он флеш юзает.
>Единственное, он флеш юзает
А потому не пригоден для закрытых частей сайта. Есть решения и этой проблемы, но они не достаточно элегантны и оставляет хорошую дырку в безопасности ваших сессий. По-моему с этими аплоад-боксами вообще ничего не надо делать. Лишние навороты.

А в других случаях swf-upload - отличное решение.
UFO just landed and posted this here
Управление загрузками полностью отдается flash-плееру. Он постом отправляет файлы из очереди. Дело в том, что он не передает в заголовках кукисы, а значит и сессию. Решение заключается в том, чтобы передавать строку сессии методом GET. Например, когда я прикручивал этот загрузчик в CakePHP, то там приходилось отключать проверку User Agent'a чтобы сессия оставалась валидной (а у плеера строка user agent'a совсем иная, чем у используемого браузера).
Все это вкупе открывает дырку в безопасности для похитителей сессий.
UFO just landed and posted this here
А вот я в Gmail встречал такую фичу: при клике на обычную ссылку, ссылка заменялась на INPUT FILE и диалог выбора файла выскакивал сам. Но долго эта фича почему-то не прожила.

Как, интересно, такое делается…
да просто вешается на ссылку обсервер (ну или напрямую onclick), который заменяет outer.div.innerHTML (или span) на форму ввода файла. Можно и через DOM добавить новые элементы, но он существенно медленней.
Dайнамик HTML — это просто
но как вызвать тот диалог?
К сожалению не помню уже что там было у гмейла, через вебфейс в него почти не захожу. Боюсь без более подробной информации не смогу ответить.
делается через функцию click() для file input element. поддерживает её исключительно ИЕ
работает очень просто document.getElementById('fileInput').click()
Мне кажется, что на гугле не стали бы делать "исключительно для ИЕ"...
Стали. Достаточно сравнить как добавляются аттачменты в ИЕ и в других браузерах (там просто появляется поле для выбора файла, те приходить кликать дважды, чтобы открыть диалог для выбора файла через эксплорер)
В FF 3,05b под мак само поле ввода не активно. И никак не хочет активизироваться=) Кнопка работает как надо.
имеется ввиду с этим вариантом или вообще? В этом варианте во всех браузерах поле ввода не активно, а кнопка работает. Под Linux в FF3b5 "стандартное" поле ввода кликается как и кнопка, но с этим фейковым оно начинает работать как и у других.
Тут 2 варианта. Либо выебнуться либо у дизайнера жопа начинается от плечей.
второй вариант.
почему-то кажется бредом. Наверное пока не столкнусь с острой необходимостью - не пойму смысле этих действий
когда работаешь над сайтами для каких-нибудь промо кампаний, там каждый пиксель и тень скурпулезно отрисовываются и все контролы стилизуются под общий вид страницы, стандартным там просто нет места.
Это очень плохо. И для верстальщика и для пользователя. Верстальщику лишний геморрой, пользователю непривычные контролы.

Есть исключения, не спорю, но они довольно редки.
Я с тобой согласен, если речь идет о хабрахабре или еще каком-нибудь общественном портале, но если речь про "лицо компании", то там эти проблемы никого уже не волнуют.

Аналогия из "материальной жизни", сосед взял Nokia 8800, сделал 1 звонок - батарея почти сдохла. Он поперся в сервис и получил там ответ: "Ты с него звонить собрался? Этот телефон не для звонков, он для того, чтоб ты пришел, достал его из кармана и показал что оно у тебя есть. А если звонить хочешь - бери себе вдобавок 1100 и заряжай раз в неделю". Тут ситуация та же. Имидж стоит дорого и за такие сайты тоже платят много.
кнопка browse на один пиксель ниже чем поле ввода
это из-за top:1px в классе pseudbutton. Просто когда готовил пост, CSS взял из текущего проекта, а в нем кнопки на 2 пикселя уже, чем поля ввода, поэтому они со смещением от верха идут. Так что багов отображения тут нету.
знакомая техника :)
есть мелкая, но решаемая проблема. Разная ширина кнопки Browse в разных браузерах и, как следствие, можно попасть вместо кнопки в само поле. я решал это путём запихивания инпута в див, который по размерам идентичен кнопке. overflow:hidden прятал само поле ввода. а если размер шрифта сделать болшьшим (скажем > 18px), то кнопка browse занимает всю площадь ограничивающего блока.
вот как выглядит примерно


если интересно, есть ссылка на рабочий пример )
странно, но тег IMG не обработался.. вот прямой линк на картинку с пояснениями http://www.fileqube.com/hl/OtiRhLG3200/custom_input.gif
такую идею тоже прорабатывал, от нее остался overflow:hidden; на рилфайле, но, столкнулся с проблемой выравнивания по правому полю кнопки, чтобы левая часть уходила "в div". В мозилле и опере работало, а ИЕ упорно задвигал саму кнопку вправо. Если есть кроссбраузерный CSS, напечатайте пожалуйста.
не совсем суть понял :) стиль использовался вот такой
------------
.inputWrapper { position:absolute; right:0px; cursor:pointer; display:block; width:80px; height:22px; overflow:hidden; opacity:0; filter:alpha(opacity:0); text-align:right;}
.fileInput {cursor:pointer; display:block; font-size:20px; float:right; right:0px; position:absolute;}
------------
где inputWrapper - врапер для самого file input. Всё это должно находится в relative блоке, чтобы все элементы были корректно спозиционированы

чтобы не быть многословным вот ссылка на живой пример - http://www.fileqube.com/upload
Firebug покажет всю правду :)
Если я не ошибаюсь, то нулевую прозрачность ставить нельзя - элемент станет не кликабельный. Решая эту же проблему выставлял близкие к нулю значения opacity (0.01)
ошибаешься. я коментом выше постил ссылку на рабочий пример. работает во всех основных браузерах и проблем до сих пор не было
при visible:hidden он не кликабельный, а при opacity полностью.
в Opera 9.50 выглядит страшно.
А есть решения, чтоб изменить надпись Browse на, к примеру, "Выбрать файл" ?
Да. В данном примере ВИДИМАЯ кнопка - это INPUT BUTTON, а на ней можно все что угодно написать.
Может кто-то знает как на поставить другой курсор?
Sign up to leave a comment.

Articles