JavaScript

Программирование на JavaScript

Особенность работы join в JavaScript

При работе с массивом в JavaScript мне пришлось столкнуться с неожиданным поведением работы метода join(). Неожиданным оно является из-за того, что в книгах, которые я читал по JavaScript, не было сказано о том, как JavaScript выводит массивы. Вернее что произойдет, если попытаться вывести в цикле for разряженный массив (индексация массива не является непрерывной). И только после того когда я увидел что произойдет сам, я начал находить примечания в документациях. Все дело в том, что в JavaScript вывод массива идёт от 0 до arr.length. Т.е. нет проверки на его разреженность как например в PHP. И вот сейчас, когда мы знаем об этой особенности вывода массивов, мы можем провести тест с методом join().

В документации по языку программирования JavaScript сказано, что метод join() объединяет все элементы массива (или массивоподобного объекта) в строку: Читать далее

Плагин для jquery — saveform

В библиотеке jquery ui есть отличный виджет, это ui dialog. Он позволяет создавать красивые и многофункциональные диалоговые окна для вашего интерфейса. Но у него есть одна серьезная проблема, которая, к сожалению практически нигде не освящается. Данная проблема состоит в следующем: если в диалоговом окне будут расположены некоторые поля html формы, то при попытке отправки формы, эти самые поля не будут отправлены обработчику. Это вы, что то сделали не так? Возможно, вы спросите себя. Но на самом деле все гораздо проще.

А дело все в том, что html элемент div (предполагается, что этот тип элемента является областью диалогового окна), выпадает из html тега form. Иными словами, при использовании виджета ui dialog, DOM модель перестраивается. Ну и соответственно ни о какой передаче полей формы не может быть и речи. Поэтому в связи с такой не утешительной ситуацией, было принято решение о создании плагина, который впоследствии получил незамысловатое имя – saveform. Читать далее

Устраняем баг в плагине syntaxhighlighter

Захотелось мне на wordpresse сменить плагин галереи. Поскольку раньше на другие сайты я ставил галерею lightbox, то и в данной ситуации начал искать плагины для wordpressa на его основе. После просмотра нескольких разновидностей галерей, выбор был остановлен на плагине lightbox plus colorbox. Далее плагин был скачан, успешно проинсталлирован и настроен. Но в один прекрасный момент, по воле случая во всем знакомом браузере Internet Explorer, галерея отказалась работать. Вернее как оказалось позже, она и не работала сразу после инсталляции. Просто у меня и в мыслях не было, что в Internet Explorere могут быть проблемы. Так как в других браузерах я протестировал, а ранее в Internet Explorere с галереями lightbox проблем не было. Читать далее

Компонент календаря на JavaScript

Чуть более двух лет назад мне понадобилось написать компонент календаря и прикрутить его к своей CMS. От идеи использования динамического календаря на PHP я сразу отказался. Поскольку нужен был календарь для вставки даты в поля формы. Первое, что я сделал, начал искать готовые решения. Естественно было и много и красивых. Но, как известно, есть пословица “Свой хлеб вкуснее”. И тут мне пришла идея о создании своего календаря. И написать его хотелось только с использованием DOM. В итоге получился календарик, не зависящий от браузеров и разный Фреймворков. Вот собственно который, я и выкладываю для использования. Читать далее

Перемещаем изображение по странице

Многие знают из программистов, а уж тем более из сайтостроителей, то для чего применяется CSS. Естественно основная его задача это отделение контента от дизайна. Но не будем углубляться в теорию, а посмотрим на это с другой стороны. А именно с той, как можно использовать CSS в паре с JavaScript. Мы по ходу данной статьи разберем пример того, как можно перемещать изображение прямо на странице. Но не все так просто, если брать во внимание кроссбраузерность (по крайней мере, с Internet Explorer и Opera). Вот Internet Explorer нам как раз и устроит сюрприз, но мы сделаем «финт ушами» и избавимся от него. Позже я расскажу, как в нашем случае обмануть Internet Explorer. Читать далее