Pull to refresh

Контекстное меню на javascript: небольшое, но мощное

JavaScript *
Вы наверняка не раз видели javascript-реализации контекстных меню на базе популярных библиотек, таких как jQuery и prototype. А значит обязательно сталкивались с основными их недостатками: неудобностью API, большим количеством кода, требовательностью к ресурсам, любовью к генерации огромного количества html кода. В один прекрасный момент эти проблемы пересилили мою лень и я решил бороться с ними, поставив следующие задачи:
  • Минимум html кода, генерируемого для меню (зачем нам засорять ДОМ)
  • Лаконичность js кода для создания меню (API вызова без копипасты)
  • Оптимум гибкости при работе (многоуровневые, динамически модифицируемые меню)
  • Как можно меньше кода в реализации библиотеки (6302 байта в несжатом виде)
  • Минимальное количество jQuery-вызовов (чтобы можно было легко от них отказаться тем, кто jQuery не использует)
  • Inline-события где это возможно вместо биндов (меньше ресурсов сожрет)

Контекстное меню

UPD: разместил проект в google code, пользуйтесь, развивайте:
svn checkout js-cmenu.googlecode.com/svn/trunk js-cmenu-read-only

Читать дальше →
Total votes 82: ↑78 and ↓4 +74
Views 14K
Comments 47

RTM Context Autocomplete Menu

JavaScript *
Однажды я зашел на rememberthemilk.com и понял, что хочу такое же контекстное autocomplete меню в свой проект. В результате получился небольшой jquery плагин, который хочу презентовать в этом посте. Работает в ie6+, opera, safari, firefox, chrome (тестировал в последних версиях). В кратце расскажу в чем суть «контекстного» меню в RTM-стиле.

Это меню присоединяется к input-элементу, но, в отличие от обычных autocomplete меню, оно «всплывает» не для ввода всего значения элемента, а для какой-то логической части поля ввода. При этом меню позиционируется непосредственно под автодополняемым текстом. Вот как это выглядит:

image

Лицензия проекта — MIT / beerware.
Скачать библиотеку с примерами можно тут: js-context-autocomplete.googlecode.com/files/js-autocomplete-v5.tar
Последнюю ревизию забираем тут: svn checkout js-context-autocomplete.googlecode.com/svn/trunk js-context-autocomplete-read-only
Кому интересно поучаствовать в проекте — пишите в личку.
Временное online-demo (upd)

Под катом интересные моменты реализации, описание функциональности, примеры, список известных багов и фич для реализации.
Читать дальше →
Total votes 64: ↑63 and ↓1 +62
Views 1.8K
Comments 33

Об одной проблеме запуска Архивации и Восстановления при использовании OpenSource кода с сайта CodeGuru

Lumber room


Работаю в техподдержке, в один прекрасный день столкнулся с проблемой запуска Архивации или Восстановления в Windows 7. У пользователя на компьютере при выборе в «Панели управления» вкладки «Архивация или восстановление» перестало работать нажатие на «Настроить резервное копирование». Чтобы не искать вкладку, можете просто запустить программу C:\Windows\System32\sdclt.exe

Поиск решения проблемы через Yandex/Google ни к чему не привел. О проблеме много говорят, но реально никто не знает, что происходит, кроме того, что советуют деинсталлировать CompareIt! или PowerISO, которые некорректно обрабатывают встраивание в Проводник через Shell Context Menu. Начал проверять, нет ли похожих программ в нашем случае и выяснилось, что действительно, недавно была инсталлирована одна полезная утилита, которая меняет контекстное меню Проводника, расширяя его возможности.

После деинсталляции этой программы проблемы с Архивацией исчезли. Обратился в техподдержку, меня переключили на разработчиков, которые ничего внятного сказать не могли, кроме того, что утилита была написана достаточно давно и не предназначена для работы с Windows 7. Кроме того, в приватной беседе выяснилось, что для встраивания в Shell Context Menu был использован OpenSource код с сайта CodeGuru.

CtxMenu, Copyright 1999, Smaller Animals Software
This code may be modifed and distributed free of charge or restrictions.
This code is provided as-is. If you use this code in any application, any bugs in the code are your responsibility.


Что же на самом деле происходит?
Читать дальше →
Total votes 28: ↑22 and ↓6 +16
Views 5.8K
Comments 15

Расширяем контекстное меню кнопки «Пуск» в Windows 8.1

System Programming *C *


В этой статье мне хотелось бы рассказать о своем опыте расширения Windows Explorer, если конкретнее, контекстного меню, называемого «Power User Menu». Не скажу, что очень нуждаюсь в старом представлении меню кнопки «Пуск», но все таки хотелось бы иметь возможность быстрого и структурированного доступа к основным функциям необходимым в работе. Power User Menu можно вызвать двумя способами: 1. Щелкнуть правой кнопкой мыши на кнопке «Пуск». 2. Нажать комбинацию клавиш Windows Key + X. Корпорация Майкрософт предоставила возможность редактирования этого меню, однако эта возможность достаточно ограниченна и не позволяет создавать иерархию меню, пункты с пиктограммами, и поддерживает только ярлыки, да и то не всех типов. Для реализации описываемого функционала мы выполним dll инъекцию в процесс Windows Explorer, а так же осуществим перехват api вызовов управляющих работой контекстного меню. В качестве подопытной операционной системы будем использовать Windows 8.1 x64.
Читать дальше →
Total votes 47: ↑35 and ↓12 +23
Views 31K
Comments 17