Рубрика «javascript» - 488

Привет!

Недавно столкнулся с ситуацией взлома сайта на WordPress у своего коллеги. Появилась реклама, которая надоедливо появлялась в углу и собственно мешала полноценной работе. Также не можно было получить доступ к административной панели WordPress, стояла HTTP-авторизация. Первым делом было решено убрать эту HTTP-авторизацию и получить доступ к админке. Если вас заинтересовало как происходил процесс реинжиниринга, прошу под кат.
Читать полностью »

Ознакомление с компонентами в Markdown webdocs
В продолжение вводной части habrahabr.ru/post/196248/, в этой статье я обзорно расскажу о механизме компонентной системы реализованной в библиотеке controls.js и используемой в Markdown webdocs для создания и вставки активного контента в текстовый документ.
Читать полностью »

Обратиться к теме написания случайных генераторов букв навела мысль о том, что в JS существует нетипичная нативная функция преобразования строки в n-ичное число, где n = 2..36. 36 в стандарте языка придумано не случайно — это сумма количества цифр и малых английских букв, из которых предлагается писать такие числа. Это значит, что парой нативных функций уже можно построить полезный генератор небольших строк из буквоцифр.

Math.random().toString(36) //даст числа вида 0.816cwugw2ky, 0.opgqwav8w1m, 0.f0w4ejtq8wk, ...

Это значит, что для некоторых задач можно не писать относительно честные генераторы на основе унылых строк вида «abcdefghijklmno...».
Читать полностью »

Кроссдоменный postMessage или как браузеры поддерживают стандартыВо время прикручивания облачных хранилищ к скрипту для бэкапа, встала необходимость использовать OAuth 2 авторизацию, для использования с разными облачными API. В принципе с самой авторизацией никаких сложностей не возникло, но проблема возникла в немного неожиданном месте.

Учитывая аудиторию использующую софтину, было решено отказаться от поддержки древних браузеров, и всё затачивалась под современные браузеры, использующие HTML5, которые казалось бы уже вполне неплохо и одинаково поддерживают страндарты.

Но не тут-то было…
Читать полностью »

Примерно год назад появилась задача сделать красивый html5 аудио-плеер. Дизайнеры нарисовали простейшую визуализацию:

image

Самый простой вариант — рисовать на фоне «шум», никак не связанный с играющей музыкой. Но мы не ищем лёгких путей.

На хабре нашлась статья визуализация аудио в HTML5, в которой подробно рассмотрен вопрос визуализации с помощью javascript. Существует 2 стандарта получения информации об аудио:

Стандарты сильно отличаются друг от друга, используя эти API мы могли добиться поддержки только в этих браузерах. Мы же хотели расширить список и придумали решение, которое заработало даже в старых версиях IE.

Упрощенное демо
Читать полностью »

Prerender

Великолепное Open Source решение для полноценной поисковой индексации ваших JavaScript приложений (Backbone, Angular, Ember, ChaplinJS, Marionette). Работает это следующим образом:

  1. Мидлвар на Ruby on Rails или Node.js проверяет user agent при каждом запросе к приложению
  2. Если обнаружен краулер поисковой машины то отправляется GET запрос к Prerender
  3. Prerender вызывает ваше приложение для той страницы, которую запрашивает краулер
  4. Страница рендерится с помощью PhantomJS
  5. Полученный HTML посылается обратно
  6. Мидлвар возвращает HTML краулеру

Читать полностью »

Доброго времени суток, читатели. Хочу поделиться неким опытом (советами) при работе с JavaScript + jQuery (по сути, вместо jQuery можете подставить любой другой JS фреймворк). Статья будет интересна новичкам JS и jQuery, но и динозаврам опытным проходить мимо не стоит, в ней вполне можно найти полезную информацию. В основном, в статье я привожу не однозначные случаи, но и место для «стоТыщРазПовтор» я счёл уместным.

image

Инициализация

Сплошь и рядом встречаю загрузку JS файлов в теге <head>. В большинстве случаев — это не корректно! Почему? В этом случае JS начинает загружаться до загрузки HTML, и как следствие клиент дольше ждёт загрузки информации за которой он пришёл. Размещение скриптов в <head> оправдано только в тех случаях, когда JS используется в качестве контроллера (к примеру, всё содержимое на странице мы достаём поблочно через AJAX запросы, в зависимости от URL или Hash). Если не используем, то гораздо лучше вставлять скрипты перед зыкрытием тэга </body>. JS начнёт загружаться только после того, как посетитель увидит страницу.Читать полностью »

Постараюсь рассказать в общих чертах о том, как выглядит процесс тестирования интерфейсов в ТКС банке.

image

Смутное прошлое

Было все просто: пришла задача, задача сделана, задача протестирована вручную тестировщиком, задача ушла на обозрение пользователям. Но потом, все стало усложняться, задач становилось все больше и больше, разработчиков прибавлялось, и тестирование, бывало, заходило в тупик.

Очаровательное настоящее

Наш коллектив сильно изменился – маленький отдел веб-разработки стал в разы больше. Изменился и сам процесс — теперь наши интерфейсы покрыты тестами как внутри (код), так и снаружи. И да, у нас есть code review, а разработку задач осуществляем в ветках, пишем старательно документацию в wiki и генерим JS DOC.

Читать полностью »

в 19:31, , рубрики: bower, javascript, JS, node.js, nodejs, метки: ,

Прошу помочь разобраться как работать с bower — вручную тягать зависимости в проекте на Symfony надоело, наткнулся на bower, но есть пару непонятных моментов:

  • Если сначала установить требуемые пакеты, а затем инициализировать bower проект — есть возможность автоматом добавить пакеты в зависимости. А в дальнейшем только вручную, правкой bower.json?
  • Также не совсем могу себе выстроить кейс использования bower — пакеты складываются в ./bower_components, а как их использовать в проекте на том же Symfony? Не прописывать же пути в проекте как ./bower_components/bla-bla/ololo.js ?

Читать полностью »

Реставрация старых игр

Привет ! Это статья первая из цикла статей о игровом движке StalinGrad. Начну повесть о нем из далека, рассмотрев предпосылки для его создания. В статье речь пойдет о том, как делать игры, конвертировать JS -> APK, и прочих трудностях и проблемах.

Пример до реставрации и после (а еще для Android`a):
Насилие над DHTML и вывод JavaScript на десктоп. Реставрация старых игр. Сборка web приложений
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js