Читать дальше →

219.7
Рейтинг
JavaScript *
Прототипно-ориентированный язык программирования
Сначала показывать
Порог рейтинга
Уровень сложности
Интересные JS-фреймворки для изучения
3 мин
4.1KВ моем твиттере прошла ссылка на десять JS-фреймворков, которые интересны в плане изучения и расширения возможностей, для того, чтобы разработчики не ограничивались только верхушкой мейнстрима (имеется ввиду jQuery/Prototype/Mootools/YUI). Вполне вероятно, что что-то из этого списка завтра будет не менее популярно, да и просто для повышения своей квалификации или подсматривания интересных решений. Оригинал на английском языке здесь, а я попробую рассмотреть самое интересное со своей колокольни.
+48
+20
Тестирование JavaScript: Fireunit Screencast
2 мин
1KВчера, после прочтения поста Джон Резига, решил записать по горячим следам первый в своей жизни (это я к тому, что сильно ругать не стоит, а конструктивная критика приветствуется :) скринкаст.
Fireunit — это инструмент для тестирования javascript кода, созданный в виде дополнения к firebug'y Джоном Резигом в рамках его сотрудничества с командой firebug. На данный момент, он работает только под ff3+, firebug 1.2+.
Зачем же нужен такой инструмент тестирования, если он работает только в firefox?
Fireunit — это инструмент для тестирования javascript кода, созданный в виде дополнения к firebug'y Джоном Резигом в рамках его сотрудничества с командой firebug. На данный момент, он работает только под ff3+, firebug 1.2+.
Зачем же нужен такой инструмент тестирования, если он работает только в firefox?
- Fireunit позволяет тестировать очень интересные dom-события — события загрузки и готовности контента, завершнения отрисовки, вроде contentReady
- Вполне вероятно, что fireunit будет включен в состав (или, по крайней мере, его можно будет установить с) firebug light.
- Сама идея фреймворка тестирования, встроенного в браузер, является очень привлекательной. Вполне возможно, что производители других браузеров включат аналогичный инмструмент в свои продукты (как уже было с web inspector'ом для webkit, dragonfly для opera, developer toolbar для ie8)
+38
В двух словах о самом разном
3 мин
669Итак, напишу о том, как пофиксить дрожание в IE при эмуляции position:absolute; (без фоновой картинки), устроить склонение слов, решить проблемы с вопросиками в Mysql и про остальные неважные, но иногда полезные хитрости.
Если Вы матёрый веб-технолог, можете не читать: ничего нового не найдёте.
Если Вы матёрый веб-технолог, можете не читать: ничего нового не найдёте.
+68
Jifeon Note Widget или просто блокнот
1 мин
627Захотелось вот что-нибудь для людей сделать.

Оно умеет:

Оно умеет:
- Ползать
- Дрыгаться
- Разваливаться на листы
- и Менять размер
- а ещё оно разных цветов
+80
Версия 0.2.4: больше, лучше, быстрее
2 мин
479Много нового и просто хорошего:
- Поддержка части CSS2/3.
- Ускорение в 2 раза: быстрее последних Sizzle и Peppy.
- Размер кода (min.gz): 1066 байтов.
- Google Code SVN: code.google.com/p/yeasss .
- Дизайн для yass.webo.in .
+23
Мирный XSS
3 мин
9KЭта статья о мирном атомеXSS. Заставим зло работать на добро!
Простейший пример всё объяснит:
Вы разрабатываете веб-сервис, который поставляет данные другим сайтам (погода, данные по торгам в реальном времени, чат и т.п). Вам нужно организовать кроссайтовую передачу данных(данные погоды, торгов, текст чата) на стороне клиента.
А зачем?
Простейший пример всё объяснит:
Вы разрабатываете веб-сервис, который поставляет данные другим сайтам (погода, данные по торгам в реальном времени, чат и т.п). Вам нужно организовать кроссайтовую передачу данных(данные погоды, торгов, текст чата) на стороне клиента.
Методы организации XSS
- Через тэг iframe
- Через тэг script
- Через flash<->javascript
- Через window.name + iframe + form
- Через CSS хак
- Через canvas + img
- Через прокси
+76
Версия 0.1.6
2 мин
592Спасибо всем.
Честно, не ожидал настолько позитивного отклика (некоторые даже кинулись внедрять библиотеку в свои проекты и всячески пропагандировать :). Для большей ясности поясню основные идеи:
Честно, не ожидал настолько позитивного отклика (некоторые даже кинулись внедрять библиотеку в свои проекты и всячески пропагандировать :). Для большей ясности поясню основные идеи:
- Это мини-ядро. Чтобы выбирать элементы DOM-дерева. На его основе (или дополнительно к нему) можно разрабатывать остальные модули. Но конкретно этот функционал дальше CSS-селекторов расширяться вряд ли будет. Идея ни разу не новая.
- Это самое быстрое мини-ядро. Каждая строчка тестируется и будет тестироваться на экстремальную производительность в большинстве случаев. Чтобы это можно было положить в основу большого проекта. Иначе все остальное не имеет смысла.
- Код открытый (MIT + GPL). Можно использовать где угодно (вроде даже без ссылок на авторство). Комментарии по улучшению приветствуются.
+34
Yet Another cSS selector = YASS
11 мин
1.6KПосле заметки о Peppy я почти обрадовался — вот оно, счастье. Наконец появился движок CSS-селекторов, который делает тоже самое, что и jQuery, только быстрее. Сильно быстрее.
Радоваться было недолго, как только я посмотрел в код, то немного ужаснулся: он не соответствовал моим представлениям об исключительной производительности. Совсем не соответствовал. Точнее, немного удовлетворял, но не до конца. Поэтому сразу встал вопрос: а если быстрее?
Почему нельзя сделать быстрое мини-ядро для CSS-селекторов, которое обеспечит базовую функциональность для работы с DOM (ну, совсем базовую — просто выборку элементов, например)? И, самое главное, чтобы это работало не медленнее (в идеале, даже быстрее), чем нативные вызовы.
Радоваться было недолго, как только я посмотрел в код, то немного ужаснулся: он не соответствовал моим представлениям об исключительной производительности. Совсем не соответствовал. Точнее, немного удовлетворял, но не до конца. Поэтому сразу встал вопрос: а если быстрее?
Почему нельзя сделать быстрое мини-ядро для CSS-селекторов, которое обеспечит базовую функциональность для работы с DOM (ну, совсем базовую — просто выборку элементов, например)? И, самое главное, чтобы это работало не медленнее (в идеале, даже быстрее), чем нативные вызовы.
+57
widget своими руками
8 мин
12KПривет.
Наверное, многие из вас пользовались стандартными javascript-виджетами, написанными как безвестными разработчиками, так и крепкими профессионалами, так и гуру. Есть великолепные коллекции виджетов, поставляемых в качестве плагинов к известным фреймворкам (вроде jQuery, Prototype JS, YUI), так и целые фреймворки, акцентирующие свое внимание на создании виджетов, вроде Ext JS или qooXdoo.
Но что, если вы не хотите использовать достаточно объемный фреймворк для создания простого диалогового окна, или хотите разобраться в том, как создаются такие виджеты, или даже разрабатываете собственный фреймворк?
Об этом и пойдет речь в сегодняшнем посте — как сделать простейшее диалоговое окно и alert средствами чистого javascript, без применения каких-либо фреймворков.
Наверное, многие из вас пользовались стандартными javascript-виджетами, написанными как безвестными разработчиками, так и крепкими профессионалами, так и гуру. Есть великолепные коллекции виджетов, поставляемых в качестве плагинов к известным фреймворкам (вроде jQuery, Prototype JS, YUI), так и целые фреймворки, акцентирующие свое внимание на создании виджетов, вроде Ext JS или qooXdoo.
Но что, если вы не хотите использовать достаточно объемный фреймворк для создания простого диалогового окна, или хотите разобраться в том, как создаются такие виджеты, или даже разрабатываете собственный фреймворк?
Об этом и пойдет речь в сегодняшнем посте — как сделать простейшее диалоговое окно и alert средствами чистого javascript, без применения каких-либо фреймворков.
+36
GameBox — аркадная игрушка на JavaScript.
1 мин
1.7KПривет.
Решил я познакомится с технологией canvas и написал ардкадную игрушку.
Использовал для старта руководство.
Решил я познакомится с технологией canvas и написал ардкадную игрушку.
Использовал для старта руководство.
+13
Поиск по файлопомойкам
2 мин
1KИногда приходится искать файлы на всяких файлопомойках типа rapidshare. Так как единого поискового механизма не предлагается, слепил левою рукою такую штуковину–искалку. Её можно вставлять в страницы, при нажатии на линк «искать» выкидывается промпт, куда задаётся искомое понятие, по нажатию «поиск» открывается новое окно/таб с результатами поиска. Набросал две версии, для ие и фф. К тому ж вывешиваю список 1689 файлопомоек, которые можно вставлять в искалку. И ещё учитывайте, что гуглостринг ограничен по длине.
Для ФФ
Для ИЕ
Список 1689 файлопомоек
посмотреть, как работает, можно тут.
UPDFree file hosting services часто называются файлопомойками из–за несортированности складируемых файлов и неразборчивости сервисов в вопросах того, что там складируется. И вы и я знаем об этом, поэтому большая просьба не обижаться на это название и не обвинять меня в попытке оскорбления.
Для ФФ
a href="javascript:Qr=document.getSelection();if(!Qr){void(Qr=prompt('Find files ',''))};if(Qr)location.href='http://www.google.com/search?num=50&hl=en&safe=off&q='+escape(Qr)+'+%28rapidshare.+%7C+megaupload+%7C+любое другое название файлопомойки%29&btnG=Search'" target="_blank" rel="nofollow" >Find files</a
Для ИЕ
a href="javascript:Qr=document.selection.createRange().text;if(!Qr){void(Qr=prompt('Find files ',''))}if(Qr)location.href='http://www.google.com/search?hl=en&q='+escape(Qr)+'+%28rapidshare+%7C+megaupload+%7C+любое другое название файлопомойки%29&btnG=Google+Search'" target="_blank" onclick="Qr=prompt('Dateien bei Free File Hosters finden','');if(Qr)location.href='http://www.google.com/search?hl=en&q='+escape(Qr)+'+%28rapidshare+%7C+megaupload+%7C+любое другое название файлопомойки%29&btnG=Google+Search';return false" rel="nofollow" >Find files</a
Список 1689 файлопомоек
посмотреть, как работает, можно тут.
UPDFree file hosting services часто называются файлопомойками из–за несортированности складируемых файлов и неразборчивости сервисов в вопросах того, что там складируется. И вы и я знаем об этом, поэтому большая просьба не обижаться на это название и не обвинять меня в попытке оскорбления.
+24
Ближайшие события
Вертикальный скрол c краткой информацией.
1 мин
2.3KКогда то давно, не помню где я читал о том, что обычный скрол можно сделать более функциональным и предлагалось ряд решений.
Мне эти идеи понравились и вот спустя много лет :)…
Предлагаю свою реализацию на javascripte. Идея в том чтобы на фоне скрола показывать эскиз всего текста, а с помощью движка скрола видимую часть текста. При таком подходе сразу видно где находится картинка, заголовок, а где параграф.
Мне эти идеи понравились и вот спустя много лет :)…
Предлагаю свою реализацию на javascripte. Идея в том чтобы на фоне скрола показывать эскиз всего текста, а с помощью движка скрола видимую часть текста. При таком подходе сразу видно где находится картинка, заголовок, а где параграф.
+85
Плагинописателям.
1 мин
621Привет.
Заметил я, что на хабре довольно много человек занимается созданием плагинов для различных фреймворков.
Есть у меня идея, почему бы вместе всем не собраться и не сделать сайт, на котором будем выкладывать наши творения или создавать что-то совместно?
Эдакий репозиторий с плагинами.
Лично я пишу для mootols\jquery.
Заметил я, что на хабре довольно много человек занимается созданием плагинов для различных фреймворков.
Есть у меня идея, почему бы вместе всем не собраться и не сделать сайт, на котором будем выкладывать наши творения или создавать что-то совместно?
Эдакий репозиторий с плагинами.
Лично я пишу для mootols\jquery.
+60
Визуализируем данные на JavaScript
3 мин
4.5KПеревод

Развитие компьютерной графики подталкивает нас к изобретению всё новых способов графического представления данных. Разрабатывались различные прикладные программы для визуализации данных на локальных компьютерах. Однако всё изменилось с развитием интернета: в нём содержатся колоссальные объёмы информации, которые нам постоянно хочется представить как-то удобнее, дружелюбнее, понятнее. Что же мы имеем на сегодняшний день?
Существует немалое число серверных библиотек и утилит, способных генерировать сложные графики. Однако я считаю, что такой подход не всегда оптимален. Если мы можем производить визуализацию на стороне клиента с помощью JavaScript, то почему бы нам не воспользоваться такой возможностью? Логика работы подобной связки проста: сервер генерирует данные, а клиент их визуализирует.
Разумеется, вы можете воспользоваться Flash, Silverlight или Java-апплетами, однако в этом обзоре я хотел бы вам показать библиотеки визуализации, написанные на чистом JavaScript.
+70
Подсветка текста в «TextArea»
4 мин
20KЭта статья покажет, как в современных браузерах можно сделать подсветку текста в поле редактирования (WYSIWYG).
Пример можно посмотреть, в google.docs или на некоторых продвинутых форумах.
Уверен, многим это будет интересно.
Именно contentEditable или designMode и делает для нас всю основную «грязную» работу.
Если этот атрибут поставить в тег, то всё, что внутри тега, становится автоматически редактируемым.
Этот атрибут не поддерживается сейчас некоторыми старыми браузерами (например, FireFox 2.0). Но есть более «глобальный» параметр страницы, который сейчас поддерживают все браузеры, который нам может помочь —
Пример можно посмотреть, в google.docs или на некоторых продвинутых форумах.
Уверен, многим это будет интересно.
Атрибут contentEditable и параметр designMode
Именно contentEditable или designMode и делает для нас всю основную «грязную» работу.
Если этот атрибут поставить в тег, то всё, что внутри тега, становится автоматически редактируемым.
<html><head></head><body>
<div contentEditable="true"><b>C</b>ontent<u>!!!</u></div>
</body></html>
работающий примерЭтот атрибут не поддерживается сейчас некоторыми старыми браузерами (например, FireFox 2.0). Но есть более «глобальный» параметр страницы, который сейчас поддерживают все браузеры, который нам может помочь —
+46
Контекстное меню на javascript: небольшое, но мощное
5 мин
14KВы наверняка не раз видели javascript-реализации контекстных меню на базе популярных библиотек, таких как jQuery и prototype. А значит обязательно сталкивались с основными их недостатками: неудобностью API, большим количеством кода, требовательностью к ресурсам, любовью к генерации огромного количества html кода. В один прекрасный момент эти проблемы пересилили мою лень и я решил бороться с ними, поставив следующие задачи:

UPD: разместил проект в google code, пользуйтесь, развивайте:
- Минимум html кода, генерируемого для меню (зачем нам засорять ДОМ)
- Лаконичность js кода для создания меню (API вызова без копипасты)
- Оптимум гибкости при работе (многоуровневые, динамически модифицируемые меню)
- Как можно меньше кода в реализации библиотеки (6302 байта в несжатом виде)
- Минимальное количество jQuery-вызовов (чтобы можно было легко от них отказаться тем, кто jQuery не использует)
- Inline-события где это возможно вместо биндов (меньше ресурсов сожрет)

UPD: разместил проект в google code, пользуйтесь, развивайте:
svn checkout js-cmenu.googlecode.com/svn/trunk js-cmenu-read-only
+74
Подсветка синтаксиса несколькими строками javascript
4 мин
21KДа, я знаю, что такое синтаксический анализ. И знаю много разных библиотек для подсветки чего угодно. Только это всё не то, когда надо подсветить простенький примерчик, не содержащий всяких кодоизвращений. И уж совсем негоже тянуть для этого много-много байт _правильно_ разбирающих _любой_ код.
Для случаев без кодоизврата (а их большинство) можно использовать такой код:
Для случаев без кодоизврата (а их большинство) можно использовать такой код:
code = code // ключевые слова (список неполон, написал, что в голову пришло) .replace(/(var|function|typeof|new|return|if|for|in|while|break|do|continue|switch|case)([^a-z0-9\$_])/gi, '<span class="kwrd">$1</span>$2') // всякие скобочки .replace(/(\{|\}|\]|\[|\|)/gi,'<span class="kwrd">$1</span>') // однострочные комментарии .replace(/(\/\/[^\n\r]*(\n|\r\n))/g,'<span class="comm">$1</span>') // строки .replace(/('.*?')/g,'<span class="str">$1</span>') // функции (когда после идентификатора идет скобка) .replace(/([a-z\_\$][a-z0-9_]*)\(/gi,'<span class="func">$1</span>(') // не люблю восьмизначные табы, пусть лучше будет 4 пробела .replace(/\t/g,' ');
+56
Удобный дебаг с BlackBird
1 мин
838
+27
Вклад авторов
alexzfort 9303.0ru_vds 6346.8ilusha_sergeevich 2778.0azproduction 2516.8aio350 2367.9alizar 2063.6phillennium 1700.2TheShock 1133.0spmbt 944.6Sirion 766.0