Прокрутить к контенту ↓


Заметки с меткой «snippets»

  • Удаляем пустую строку запроса из URL (+)

    Порой в конце URL-адреса содержится нежелательный вопросительный знак. Это происходит, например, при использовании кнопок-ссылок в браузерах на основе движков WebKit (Safari) и Chromium/Blink (Opera 15+, Яндекс.Браузер, Vivaldi).

    Проблему можно обойти: завершающий вопросительный знак при пустой строке запроса можно автоматически удалять с помощью серверного перенаправления (редиректа).

  • Исправляем Copy Link Name в Firefox 39 (+)

    Полезное Firefox-расширение Copy Link Name, позволяющее скопировать текст какой-либо ссылки на веб-странице в буфер обмена, перестало работать в Firefox 39 (Aurora / Developer Edition).

    Официальный email-адрес поддержки не работает, а сайт автора представляет собой заглушку без возможности с ним связаться. Но можно легко исправить расширение самостоятельно.

  • Семантическая HTML-разметка групп DT/DD (+)

    Порой требуется применить стили к каждой отдельно взятой группе элементов DT/DD как единому целому.

    Но заключение элементов DT и DD в обобщённый контейнер типа DIV запрещено спецификацией HTML: их родительским элементом синтаксически корректно («валидно») может быть только DL.

  • getElementsByClassName() в IE8 (+)

    Браузер Internet Explorer 8 (IE8) не поддерживает DOM-метод getElementsByClassName(), но поддерживает querySelectorAll(), с помощью которого можно решить ту же задачу без привлечения каких-либо JS-библиотек.

  • Как сделать кнопку ссылкой (+)

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

  • Почти родной matchesSelector() для IE8 (+)

    В современных браузерах доступен удобный JavaScript-метод matchesSelector() (в более свежих версиях стандарта переименованный в matches()), позволяющий определить, соответствует ли элемент заданному селектору. Это одна из ключевых возможностей, позволяющих обойтись без библиотек типа jQuery для удобного назначения live-обработчиков событий.

    Internet Explorer поддерживает matchesSelector() (с префиксом ms) лишь начиная с версии 9. Но что делать с IE8, поддерживать который во многих случаях по-прежнему приходится? К счастью, есть компактное решение, не требующее сторонних библиотек.

  • Используем Sizzle отдельно от jQuery (+)

    Sizzle — кроссбраузерный движок селекторов, реализованный на JavaScript и используемый в популярной библиотеке jQuery.

    Но если широкие возможности jQuery для конкретной задачи или проекта не нужны, можно использовать Sizzle и как самостоятельную библиотеку, получив 5-6-кратный выигрыш в скорости загрузки по сравнению с jQuery.

  • Укрощаем строку состояния Firefox (+)

    В Firefox 4 строка состояния начала отображаться в правой части окна браузера вместо левой, если открыта панель поиска. (В строке состояния отображается, например, URL-адрес, на который указывает ссылка, над которой в конкретный момент находится указатель мыши.)

    В результате строка состояния отображается то слева, то справа, и оказалось нарушено важнейшее правило юзабилити: конкретный элемент интерфейса всегда должен находиться на одном и том же месте.

    Те, кому этот баг Firefox мешает, могут устранить проблему самостоятельно, вручную добавив следующие CSS-правила в файл chrome/userChrome.css в папке профиля Firefox либо с помощью расширения Stylish.

  • Псевдокласс :first-child и комбинатор + в IE7 (+)

    Несмотря на то, что формально IE7 поддерживает селектор :first-child и комбинатор +, есть ограничение: если в HTML-коде «на месте» элемента, на который указывает CSS-селектор, окажется комментарий, IE7 не применит стили к элементу, следующему за комментарием.

    Однако проблему можно обойти путём динамического удаления HTML-комментариев как DOM-узлов средствами JavaScript по факту загрузки HTML-страницы.

  • Запрет отображения сайта в IE8 в режиме совместимости (+)

    Чтобы запретить отображение вашей страницы в IE8 в «режиме представления совместимости» (который пользователи нередко включают случайно — спасибо Microsoft за «удачное» расположение соответствующей кнопки ), когда IE8 ведёт себя почти как IE7 (например, не поддерживает display: table), следует использовать meta-элемент (или одноимённый заголовок ответа сервера) X-UA-Compatible со значением IE=edge.

  • Простая JavaScript-идентификация IE 5.x (+)

    Свойство document.compatMode, в относительно современных браузерах содержащее текущий режим рендеринга (CSS1Compat или BackCompat), в IE 5.x просто отсутствует — ведь эти версии IE банально понятия не имеют о существовании стандартов и, соответственно, различных режимов рендеринга. Таким образом, мы можем однозначно идентифицировать («сниффить») IE ниже 6-й версии.