Архив рубрики: Frontend

Перехват события перехода с веб-страницы

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

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

HTML5 Boilerplate — Пуленепробиваемый шаблон для разработки HTML5 сайтов

Вышел HTML5 Boilerplate на русском.

HTML5 Boilerplate — это HTML/CSS/JS шаблон для всех маньяков, пишущих быстрые, неглючные и ориентированные на будущее сайты.

Ключевые плюсы:

  • Кросс-браузерность (ага, даже IE6).
  • Настоящий HTML5. Можно сразу использовать новые теги.
  • Правила сжатия и кеширования для супер производительности.
  • Оптимальные параметры для настройки сайта.
  • Поддержка мобильных браузеров.
  • Использование фич в зависимости от возможностей браузера — мы это учли.
  • Специальные классы для Internet Explorer.
  • Классы .no-js и .js, чтобы можно было по-разному стилизовать страницу в зависимости от того, включен ли JavaScript.
  • Хочется юнит-тестов, но лениво их писать? Мы уже написали подробнейшие юнит-тесты для проекта.

Векторные маски для изображений с библиотекой ictinus

ictinus — JavaScript библиотека, позволяющая легко добавлять векторные маски картинкам прямо в браузере.

На страницах документации подробно описано как и почему это работает. Комментаторы говорят о некоторых проблемах с ie8, не знаю решил ли их разработчик.

Ошибка при работе с методом setSelectionRange в Gecko

Если в Gecko вызвать метод setSelectionRange у инпута, который скрыт через {display:none;}, то в тред js завершается, а в консоли показывается ошибка:
uncaught exception: [Exception... "Component returned failure code: 0x80004005
(NS_ERROR_FAILURE) [nsIDOMNSHTMLInputElement.selectionStart]" nsresult: "0x80004005
(NS_ERROR_FAILURE)" location: "..." data: no]