Pull to refresh

Comments 85

я бы добавил как-либо индикатор, что список загружается (...loading...). В примере с функциями PHP это было не понятно.
предусмотреть всё невозможно..
если нужно сделать индикатор, добавляем к событию ontype его включение, а в callback-функции (которая наступает после окончания загрузки) - отключение.
а вообще - у меня например список подгружается моментально, как только введены первые 2 буквы.. объем подгружаемых данных 200-300 байт.. ;)
При заходе в http://alx.vingrad.ru/fwc/ru/examples получаю кучу ошибок:
FWC:Error -> XML-file 'sources/ex/ex1.xml' loading error.
FWC:Error -> XML-file 'sources/ex/ex2.xml' loading error.
FWC:Error -> XML-file 'sources/ex/ex3.xml' loading error.
FWC:Error -> XML-file 'sources/ex/ex4.xml' loading error.
FWC:Error -> XML-file 'sources/ex/ss_alx.xml' loading error.
FWC:Error -> XSL-file 'js//FWC/design/design.xsl' loading error.
и, естественно, ничего не работает.

Opera 9.23/Linux.
В Opera 9.22 (Windows) - тоже самое при первом запуске.
потому что я уже исправил)
на месте точек должно было быть - <base>
извиняюсь.. подвела Опера.. чем-то ей не понравился мой mod_rewrite и ..
переписал в подгрузчиках пути от корня (на релизе не отразилось).
как насчет optgroup?

еще желателен поиск option'ов при наборе на клавиатуре как в стандартном селекте — если открыть его и начать нажимать на клавиатуре кнопки, выберется начинающийся с этих букв option

и очень грустно, что при отключенном яваскрипте функциональность становится недоступна... как же graceful degradation?
optgroup - это что?
а зачем, если есть нормальная реализация автоподстановки? в любом случае, одно из качеств тулкита, что вы можете использовать весь арсенал ваших навыков, в том числе и JavaScript! есть обработчики событий, есть API с свойствами и методами для таких случаев, пожалуйста, ловите обработчик события ввода, и делайте с ним, что хотите. производите поиск по массиву пунктов ( optionsNodes ) и выберайте нужный ( selectOption() )

как вы себе представляете выпадающее меню без JavaScript?) и что такое graceful degradation?)
optgroup - это что? ну как вам сказать... почитайте спеку html, с этого и нужно было начинать создание эмулятора контрола

автоподстановка и выбор из списка — разные вещи, это должно быть очевидно. Если вы предоставляете замену стандартного контрола, то она должна уметь как минимум то же самое, что и этот контрол, а не предлагать использовать апи ; )

выпадающее меню без яваскрипт — это select. Его можно улучшать (см. progressive enhancement), но базовая функциональность должна быть доступна агенту без поддержки css и js. Если при отключении этих фич все продолжает быть как надо — это и есть graceful degradation.

Вообще рекомендую побольше почитать хотя бы западных js-блоггеров на тему стандартов и accessibility, и только потом браться за такую серьезную задачу, как свой контрол. Это не хиханьки, серьезно.
вы что имеете ввиду тег optgroup? а зачем он нужен? вы можете использовать внутри тега fwc:select любой html, пожалуйста - группируйте опции, как вам удобно..

для совместимости с оригинальным селектом реализую в mode:select. в свободное время ;)

см. - http://www.habrahabr.ru/blog/webdev/2388…

рекомендации принимаю, а хиханек никаких нет. я на это 4 месяца угробил..
Safari, MacOsX - ничего не работает.. При заходе на examples говорит "FWC:Error -> fwc:select tag not found."...
Safari 3.0.3 (OS X 10.4.10) - ничего не работает. Ошибка "TypeError: Value undefined (result of expression doc.load) is not object.
http://alx.vingrad.ru/fwc/js/FWC/js/sselect.js" 6 раз. А еще на главной о поддержке Safari пишут.
Странно, вроде в Safari мне говорили, что работает.. будем решать.
Извините, кого обманул :)
вроде есть порт Safari под винды.. это так, для тестов ;-)
не работает JavaScript-подгрузчик (как и в Opera 8- и Konqueror). Пока не уверен, что это моя вина, будем разбираться. Последние 2 браузера например просто не поддерживают работу с DOM на клиенте. не знаю, как Сафари.
PHP-погрузчик работает отлично.
так оно и есть. по крайней мере мой Safari - 3.0.3, WinXP SP2 не поддерживает метод load (подгрузка XML-файла). на W3Schools есть пример, реализующий кроссбраузерное решение. примерно такое же у меня в тулките, в Safari оно не работает, смотрите сами: http://www.w3schools.com/dom/tryit.asp?f…
проверьте на Маке, если ситуация та же, о JS-парсере в Safari можно забыть :(
по крайней мере, пока не появится специальное решение для него.
Пользвуйтесь PHP-подгрузкой.
На w3schools ошибка, document.load это нестандартная функция, поэтому Safari её и не поддерживает. Используйте XMLHttpRequest.
При отключении картинок селект превращается в едит :)
а вы, простите, как хотели? :) это же искуственная эмуляция, тут без картинок не обойтись..
хотя вы спокойно можете создать и подключить собственный скин (через соотв. атрибут), где замените картинку на цветовую заливку или даже полностью перестроить верстку (например заменив кнопочку вниз на ссылку "раскрыть"), создав и полключив собственный xsl-файл через атрибут design.
Safari 2.0.4 (Mac OS X 10.4.10) не работает :-(
Пишет
FWC:Error -> fws:select tag not found
У мну в Опере 9.21 все значительно притормаживает... =(
это как это? не наблюдал такого у себя.. что именно тормозит?
Открытие/закрытие списков.
странно.. я понимаю ещё раскрытие, оно анимированное, но закрытие то умолчанию вообще не анимировано.. просто скрывается слой.. как это может тормозить? у кого-нибудь есть ещё такие глюки?
а вообще анимацию при открытии можно отключить - атрибут showspeed="0".
Выглядит очень... sexy! Обязательно попробую в каком-нибудь проекте.
ха, тогда советую почитать документацию внимательно, что могут привести к оргазму)))
Если переключится на контрол по tab и нажать "вниз" вместо списка появляется тонкая полоска без элементов. По esc меню не исчезает. А вообще, в качестве общего развития, почитайте:
http://live.julik.nl/2007/05/your-tricks…
1) при переходе по tab, действительно при нажатии вниз меню не раскрывается.. это глюк, будем дебажить :) (на то он и фидбек)
2) меню закрывается по esc, когда скрипт думает, что юзер не умеет пользоваться мышкой (т.к. при открытии и навигации с клавы). если меню было открыто мышкой, логичнее его мышкой и закрывать. хотя если это важно, добавить это - дело 5 минут.
3) к чему ссылка я вообще не понял. вы прислали линк на сайт, где используются "рюшечки", которые мешают юзабилити. при чем тут мой тулкит?
во-первых то, как он будет влиять на юзабилити - зависит не от меня, а от вас - насколько правильно вы будете использовать его при разработке формы... во-вторых все описаные в той статье клюки автоподстановки у меня отстутствуют. в общем даже останавливаться на этом не хочу.. сссылка совершенно не в тему.
Ссылка не только и не столько про глюки конкретного бокса с автоматическим дополнением, сколько вообще про собственные контролы. Про то, чтобы в погоней за "красотой" и "функциональностью" не потерять юзабилити. Я нашел эти два, скажем так, недочета за несколько секунд. Просто потому что я ожидал стандартного поведения и вел себя как обычный пользователь. Сколько таких неожиданностей найдется при более вдумчивом тестировании, когда придут не разработчики с криками "вах!", а пользователи, которые привыкли к стандартному поведению и которым нужно просто быстро вбить информацию - бог весть.
Именно про это ссылка. Про то, что такой контрол может при малейшем глюке сделать неюзабельным весь сайт. Кстати говоря, в случае отключенного жаваскрипта контролы тоже должны работать. Превращаться в стандартные, но по-прежнему с возможностью хоть какого-то выбора. Я понимаю, что это в принципе может сделать тот, кто использует этот продукт, но все-таки лучше позаботиться об этом разработчикам.
Не сочтите как выпад в Ваш адрес, просто точка зрения "со стороны".
просто вы так говорите, как будто эти скажем так, недочеты сводят на нет весь тулкит и вообще непонятно что я здесь делаю..
естесственно в процессе тестирования появляются баги, но ведь я для этого и выложил ссылку тут, чтобы мы все вместе тестировали, смотрели и комментировали.. эти недочеты будут исправлены, больше пока мы не нашли..
про отключеный ЯваСкрипт см. ниже, этот вопрос ещё открыт.
Не работает в Lynx/2.8.5rel.1.

А вообще с отключенным JavaScript работает? А screen readers как к ним относятся?
C отключенный javascript не работает. Если бы это пофиксить, то было бы очень и очень хорошо :)
я вас не понимаю) как можно сделать это без JavaScript?
JavaScript был создан для этого... а не для того чтобы его отключали и требовали от юзера альтернативных решений.. ;) выбирайте) либо SmartSelect (и все остальное), либо выключенный JavaScript.
ктсати, для чего его отключают - для меня до сих пор загадка..
задача профессионала в том, чтобы выбор был не у разработчика, а у пользователя ; )

и его не всегда отключают, некоторые браузеры его просто не умеют, возьмите хоть мобильные телефоны
это шутка была? про Lynx?

про screen readers без понятия.. буду благодарен за информацию
Нет, не шутка. Потому что нужно сделать так, чтобы при отключённом JavaScript элемент управления был всё равно доступен и работал, пусть и в виде обычного input или select.
я сделать этого не могу никак. если JavaScript отключен - тут я бессилен, т.к. тулкит на JavaScript. просто человеку, использующему СмартСелект нужно добавить тег NOSCRIPT после тега SCRIPT с вызовом метода newSmartSelect.
просто сделайте, чтобы контрол инициализировался из селекта и подменял его собой
я думал о таком варианте, но как тогда быть с настройками..
у тулкита свои атрибуты и фишки, использование их внутри html будет противоречить спецификации XHTML.. думаю тогда недовольных будет ещё больше.. :) если есть предложения или идеи - пишите, но пока я не спешу делать такой вариант..
и кстати, по секрету - совсем не горю желанием поддерживать отключение JavaScript. я думаю, что использование NOSCRIPT самим пользователем будет наиболее рациональное решение.
с настройками очень просто: конструктор получает id select'а и прочие параметры. Параметрами он настраивается, а из селекта берет данные. Потом подменяет собой селект.

можете не гореть желанием, но так вы потеряете ощутимую часть самых профессиональных разработчиков, которые могли бы использовать контрол

4 месяца — это долго, но работу обычно меряют не по усталости ; )
идея хорошая, но кроме настроек есть ещё кое-что.. например - использование тегов внутри <fwc:selectt;&g и <fwc:option>..

ну написал то за неделю - две) остальное время совершенствовал и шлифовал)) когда время было.
вот тут вы рискуете пойти по пути activeX и прийти туда же, куда и он
простите, не понял. можете разъяснить?
вы против возможности использования html в списках и пунктах?
насколько мне известно, activeX предлагал веб-мастерам возможность значительно улучшать функциональность страницы в рамках одного браузера. По нескольким причинам, в том числе из-за закрытости этого решения, activeX сейчас используется очень мало

вы предлагаете возможность улучшать функциональность страницы для нескольких (далеко не всех) браузеров, и я вижу тут прямую аналогию

да, я против нарушения стандартов
activeX - ie.
smartselect - ie, firefox, mozilla, opera, safari и konquerror в доработке.
аналогия плохо просматривается..) впрочем, мне кажется мне вас уже не переубедить..

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

а второй абзац как будто перенесся сюда из какого-нибудь 1997 года ; )
мне нечего больше вам сказать..
кроме того, что это opensource, есть проект на googlecode, и если у вас есть идеи, а не только слова - берите, присоединяйтесь и помогайте.
не буду, потому что принципиально не согласен минимум по одному вопросу
быть несогласным легко)
а что-то делать, чтобы прийти к компромиссу - сложно ;)
Вам всё правильно советуют.
Вот, например, изучите как работает этот пример с SELECT.
В примере с мультиселектом куда зрелищнее было бы выводить все выбранные опции через запятую а не их количество

А вообще, что-то подобное уже делалось и не раз - например -
http://scbr.com/docs/products/dhtmlxCombo/index.shtml
это всё зависит от настроек. взгляните документацию.
вы можете выбирать как перечислять выбранные опции, какой разделитель использовать, вы можете даже задавать слова, которые будут отображены, когда выбраны все пункты или когда не выбрано ни одного. в примерах это тоже отражено, смотрите внимательнее ;)

dhtmlxCombo насколько я знаю был лучшим комбобоксом, но сейчас его возможности составляют процентов 10 от возможностей смартселекта ;) простите за нескромность)
Извиняюсь за оффтоп, не подскажете ребята, в ИЕ7 излечили эту дурацкую багу с z-index'ом у элементов формы?
А если сделать по такому принципу: В коде обыкновенный селект с id, а на JS идет подмена селекта на вот это FWC:SmartSelect (не выговорить даже :). Тогда без JS все будет работать по-стандартому.
если это действительно нужно - голосуйте, осуществим)
Это действительно нужно.
А просто — сформированный select внутри разместить? Есть js - инициализируется и работает смарт-селект, нету — простой селект.
Изв., (Хабр и эти теги съел), имел в виду: «внутри тегов "носкрипт"»...
Да, я так и рекомендую делать.
UFO just landed and posted this here
комменты в основом злые какие-то, наверное это зависть ;)
контрол полезный, грамотно сделано, видно, что приложены значительные усилия - автору респект!
а вот за это большое спасибо, приятно, что кто-то понимает что я чувствую :)
UFO just landed and posted this here
блин очень неудобно читать текст без заглавных букв было бы хорошо если бы автор оформлял текст по общепринятым нормам спасибо
было бы очень хорошо использовать хотя бы немного знаков препинания ;)
Ну мы поняли друг друга, про что я и говорил)
приму к сведению вашу просьбу)
Спасибо за интересный тулс. Обязательно попробую в самом сокром времени.

Единственное, 1) довольно большой JS получился; 2) При отключенных JS функционал полностью выпадает...
это скорее двойственное))
1) да, сейчас это 34 кб + Prototype. но в принципе не проблема его сжать. нужна сжатая версия?
2) см. обсуждение выше.. пока я предлагаю использовать тег noscript с html-селектом.
Да сжатая версия была бы очень кстати. А еще лучше наверное пойти по пути разработчиков jquery и публиковать в разделе "Загрузки" сразу обе версии: в сжатом и форматированном виде (для тех, кто собирается вносить свои изменения в исходники, что позволяет MIT-лицензия).
ну это естесственно, только мне бы хотелось получить ещё некоторое количество голосов от других людей по этому поводу.
«
всем известны проблемы с тегом select в html: отсутствие возможности настройки внешнего вида, <<перекрывание абсолютно позиционированных слоев>>
»

Это не проблема «с тегом select в html»

Зы. Почему HTML-теги не работают? Или это только в предпросмотре?
BIG UPD 05.02.09 — версия 2.7
Включена поддержка браузеров Safari, Konqueror и Google Chrome.
Теперь работает везде.
ajaxy.ru/fwc
Fatal error: Class 'XSLTProcessor' not found in /var/www/web16/html/fwc/index.php on line 15

Fatal error: Uncaught exception 'RuntimeException' with message 'XSL extension not loaded' in /var/www/web16/html/fwc/js/FWC/php/SmartSelect.class.php:127 Stack trace: #0 /var/www/web16/html/fwc/js/FWC/php/SmartSelect.class.php(50): SmartSelect->__construct() #1 /var/www/web16/html/fwc/_demos/sselect.php(11): SmartSelect::getInstance() #2 {main} thrown in /var/www/web16/html/fwc/js/FWC/php/SmartSelect.class.php on line 127
пофиксено. хостинг глючил.
Sign up to leave a comment.

Articles