Насколько Chrome, Safari, Firefox, IE и Opera удовлетворяют требованиям HTML5? Исправляем ошибку HTML5 в видеоплеере

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

Описание плеера

Для многих не секрет, что для просмотра разного рода видеороликов, игры в онлайн-приложения и совершения прочих полезных действий нужны специальные расширения для браузера. Среди них Adobe Flash player, Microsoft Silverlight, Ace Stream и Quicktime. Доля веб-элементов, поддерживающих вышеприведенные технологии, превышает 90%.

Но это было до недавнего времени. После презентации нового стандарта HTML5 появилась возможность проигрывать видеоролики и прочий медиаконтент средствами браузера, без участия сторонних плагинов и дополнительных кодеков. Плеер поддерживает все современные расширения файлов, среди которых OGG, WebM, MP4 и прочие.

Если новинка столь хороша, почему возникают проблемы? На этот и сопутствующие вопросы ответ расположен ниже.

Как исправить ошибку?

В подавляющем большинстве случаев проблема заключается в устаревшей версии браузера, который не поддерживает стандарт HTML5. Для обновления вашего интернет-обозревателя перейдите в «Параметры» – «О программе» и нажмите кнопку «Проверить наличие обновлений».

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

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


На этом все. Теперь вы знаете, как исправить ошибку HTML5 при просмотре видео. Если знаете другие способы решения проблемы – поделитесь им, пожалуйста, в комментариях.

Adobe Flash Player доживает свои последние годы. Данная платформа морально устарела, и разработчики перестанут поддерживать её уже к 2020 году. Многие компании, программисты и энтузиасты уже начали отказываться от проверенного формата в пользу прогрессивных, но ещё «сырых» технологий. Одним из таких новшеств является видеоплейер «HTML5», который, потенциально может заменить старый добрый Флэш Плеер.

Не все пользователи могут похвастаться мощными и современными персональными компьютерами со всеми обновлениями операционной системы (драйвера, кодеки). Не у всех установлена (чем выше версия, тем меньше ошибок при работе). Но всем интересна жизнь, кипящая в глобальной сети Интернет. Тысячи фильмов и сериалов, десятки тысяч клипов, сотни тысяч забавных любительских видеороликов можно найти и посмотреть через всемирную паутину в любой точке планеты Земля.

Если при просмотре видео на компьютере возникают графические искажения, пользователю не стоит расстраиваться и искать альтернативу для просмотра. Первое что надо сделать – это проверить работоспособность своего ПК, все ли обновления, драйвера и кодеки есть и в рабочем состоянии. Второй нюанс – это проверка видеоплейера, встроенного в сам интернет обозреватель Мозила. Разработчики из Mozilla Corporation стараются угодить всем своим фанатам и просто пользователям поисковой системы. Поэтому у каждого есть возможность просмотра видеоизображений через различные плееры: Flash Player или HTML5. Чтобы проверить, какой плеер включён в браузере фаерфокс, достаточно нажать правой кнопкой мыши по экрану с видеорядом.

Как отключить HTML5 в Firefox

Если пользовательский персональный компьютер уступает по техническим характеристикам своим современным собратьям, можно попробовать сменить плеер с HTML5 на Adobe Flash Player. Для этого необходимо зайти в скрытые настройки браузера, набрав в поисковой строке «about:config ». Разработчики любезно предупреждают о рисках, связанных с изменениями в «тонких» настройках. Принимаем ответственность на себя.

В окне «Поиск:», для простоты нахождения для изменения параметров, надо набрать английское слово «media».

Четыре параметра, которые могут быть включены по-молчанию, надо сменить с «true» на «false». То есть выключить их двойным щелчком левой кнопкой мыши.

  • media.ogg.enabled
  • media.wave.enabled
  • media.webm.enabled
  • media.windows-media-foundation.enabled

После перезагрузки браузера Mozilla Firefox настройки вступят в силу, и новый плеер HTML5 сменится на Adobe Flash Player.

Как включить HTML5 в Firefox

Если необходимо провести обратную манипуляцию и сменить старый проигрыватель от Adobe на прогрессивный аналог, пользователю нужно провести те же манипуляции с вышеупомянутыми параметрами с «false» на «true». Перезапустив интернет обозреватель, видео должно показывать без помех и сбоев.

30.04.2015 | 20:49 Аналитика

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

Прошло уже четыре года с момента появления HTML5. Сегодня об HTML5 снова вспомнили, потому что комитет W3C, наконец, решил, что пора прекратить возиться со спецификацией HTML 5.0 и перейти к HTML 5.1. Это знаменует собой историческое событие, потому что документ HTML4 был завершен в 1997 году.

Что же делал мир во время становления стандарта? Конечно, не дожидался окончательного проекта. Сайты, использующие преимущества стандарта HTML5, распространились повсеместно. Браузеры поддерживают многие из функций HTML5, и они становятся все лучше с каждой новой версией. Различий между веб-сайтами и нативными приложениями меньше, чем когда-либо, а сложные, интерактивные веб-сайты, ведущие себя как нативные приложения, реальнее, чем когда-либо.

Хорошей новостью является то, что браузеры сошлись на стандарте. По оценке HTML5Test.com, они ближе и ближе к идеальным, хотя разница между некоторыми браузерами все-таки есть.
Стоит отметить, что HTML5Test оценивает соответствие всем стандартам одной цифрой (от 0 до 555). Автоматизированный тест проверяет — поддерживается ли функция, создавая объекты DOM. Он не может сказать, будет ли функция реализована правильно, элегантно, или без ужасных багов.

В то время как эту цифру трудно игнорировать, реальные ответы лежат несколько глубже. Потратив всего несколько минут на просмотр списков, можно увидеть приоритеты развития команды каждого браузера. Некоторые из новых функций, которые еще не поддерживаются, не особенно важны. Chrome поддерживает кастомные схемы хэндлеров, но не поддерживает кастомные хэндлеры контента. Firefox не поддерживает некоторые из новых полей ввода для форм, такие, как время, месяц или неделя. Есть, по крайней мере, дюжина упущений в каждой платформе, и лишь немногие из них в настоящее время влияют на разницу в опыте обычного пользователя. Но это пока. Соответствие нужно для строительства прочной основы для будущего.

Политика браузеров

Некоторые из этих различий обусловлены глубокими политическими и финансовыми баталиями, скрывающимися за кулисами. Firefox и Chrome поддерживают видео кодеки WebM и Ogg Theora, но не MPEG-4. Safari поддерживает MPEG-4, но не WebM или Ogg Theora. По крайней мере, все они согласны с поддержкой H.264. Эти кодеки не являются официальной частью HTML5, но они являются настолько большой частью современного Интернета, что работа над ними является более важной для многих веб-разработчиков, чем все другие функции.

Другие пункты в тесте даже не являются частью официального проекта HTML5, потому что они — часть другой спецификации, которая может быть выделена из официальной спецификации HTML5. Часто бывает трудно для веб-разработчиков, программистов и особенно пользователей, нарисовать линию между тем, что есть в HTML5 и что является новой или лучшей функцией. Некоторые из наиболее привлекательных функций, таких как Web Storage и Web Workers не находятся под зонтиком HTML5, хотя они также введены консорциумом W3C. При этом, они могут иметь даже большее влияние.

Ядро спецификации HTML5 завершает добавление ряда новых тегов, предназначенных для указания роли воспроизводимого контента внутри тега. Они определяют области, разделы, отступы, нижние колонтитулы и заголовки. Раньше, мы бы отметили их тегами, которые определяют оформление . Теперь они будут отмечены своей ролью, так что у них могут быть собственные стили CSS, и браузер соответственно отобразит эти элементы. Тенденция отделять текст и изображения от их расположения и представления на странице продолжается.

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

Использование элементов неправильным способом может иметь последствия не только в виде обиженных сторонников правил в Интернете. Умное перепрофилирование тегов (например, таблиц) также разрушает другие системы. Команда HTML5 тратит много ресурсов, чтобы упростить слепым и инвалидам использование Интернет. Использование тегов таблиц для чего-то, кроме данных таблиц, путает программы для чтения с экрана и другие механизмы.

Теперь есть новый класс атрибутов ARIA (Accessible Rich Internet Applications), обеспечивающий альтернативные описания данных внутри. В общем, усилия по отделению сообщения от представления помогает сделать это гораздо легче.

От веб-страниц к веб-приложениям

Множество работ осуществляется в направлении обращения статических страниц в полноценные динамические приложения. Спецификации для Web Storage, WebSockets и Web Workers стали намного толще, по мере того, как создатели браузеров выяснили, что работает, а что нет. Эти данные делают возможным для программистов создание полнофункциональных пакетов программного обеспечения, как Google Docs. Локальное сохранение данных, возможность фоновой коммуникации и многопоточность — очень важны для работы с нетривиальными наборами данных.

Изменения в основном сосредоточены на мелких деталях, которые могут быть даже не заметны для многих разработчиков. Существуют десятки небольших изменений, а также дебатов вокруг них, которые не могут быть закончены. Из-за того, что многие детали остаются неопределенными, создатели браузеров часто принимают разные решения. Спецификация Web Storage говорит, что браузеры должны «ограничить общее количество пространства, доступного для хранения» и предлагает 5MB в качестве хорошего лимита. Между тем, реализации отличаются.

Одна из наиболее спорных областей может заключаться в обработке медиа. Веб-браузер становится доминирующим способом получения доступа к видео и команда, занимающаяся спецификацией HTML, настроилась на завоевание гостиной. Спецификация Encrypted Media Extensions включает в себя сложный механизм для работы с лентой видео и ключами, так что только должным образом лицензированные браузеры смогут показать изображения. Chrome, Opera и Safari поддерживают эти мультимедийные расширения; Firefox и Internet Explorer — нет.

Существует много другой работы, направленной на создание изменяющихся частей. Один из новых проектов, который называется Web Video Text Tracks, исследует стандартный механизм для синхронизации видео с другими частями сайта. Он, в основном, направлен на подписи, но нет никаких причин, почему он не найдет другие применения: слова, графики и изображения, перемещающиеся везде; и все браузеры его поддерживают.

Будущее Web

В то время как естественно думать о внедрении спецификации HTML5 в конце длительного процесса ее развития, лучше рассматривать это как начало следующего поколения. Некоторые из идей были выброшены из спецификации 5.0, потому что не было достаточно «опыта внедрения». Другими словами, функции не существовали достаточно долго, чтобы все узнали — являются ли они тем, что мы хотим.

Быстрый просмотр спецификации HTML 5.1 в виде проекта, включает в себя такие функции, как атрибут accesskey для добавления клавиатурных эквивалентов щелчкам мыши. Существует боле расширенная поддержка во всех браузерах для API редактирования HTML, которые делают каждую веб-страницу потенциально редактируемой, а всю сеть потенциально одной большой Википедией.

Могут появиться даже большие изменения, поскольку некоторые предпочитают, чтобы HTML был более похож на XML. Это не просто попытка закрыть все открытые теги, что, очевидно, приведет к багам у некоторых разработчиков. Некоторый члены сообщества, обсуждающего спецификации HTML5, уже говорят о возможностях «взлома» следующей версии. То есть, они хотят спецификацию, которая позволит нам определять наши собственные тэги и наш собственный механизм для обработки тегов после того, как они будут проанализированы.

Это может сделать разметку гораздо более эффективной. Любой, кто нажимал на кнопку «View Source», видел, что многие файлы HTML на 50-60% состоят из тегов и , каждый из которых с несколькими различными прилагаемыми классами. Отладка файлов CSS стилей становится все более трудной. Один из способов избавиться от этого, заключается в полностью расширяемой системе тегов.

Все эти решения ожидают нас в будущем. Этап HTML 5.0 является значительным, но это только пауза в развитии стандарта, который определяет, как мы представляем информацию и взаимодействуем с ней.

Достаточно обобщений - время покопаться в браузерах.

Браузер №1: Google Chrome

Chrome имеет самый высокий балл по HTML5Test — 523 для Chrome 42 — и многое говорит о приверженности компании Google спецификации HTML5 и стремлении создать один из ведущих браузеров. Осталось только несколько не отмеченных пунктов для команды программирования, чтобы заработать максимальный балл.

Упущения несколько разбросаны, и нельзя их суммировать одной фразой. Пропавший элемент разметки здесь и нереализованный графический метод там. В общем, Chrome — мечта для тех, кто привержен широкому набору инструментов для создания пользовательских интерфейсов. Если вы хотите использовать все новые методы разметки или элементы формы, Chrome — это лучший выбор. У него очень мало пробелов в списке.

Некоторые из самых больших упущений находятся под капотом. В нем нет хуков в движке JavaScript, которые отвечают за отдельные события, когда скрипты запускаются и останавливают выполнение. Нет простого способа контролировать как стили CSS влияют на страницу. Также не существует возможности использовать свой код для регистрации функции, которая обрабатывает все данные определенного типа MIME или URL схемы, так называемых пользовательских обработчиков контента.

Все три идеи, кстати, были давно реализованы в Firefox. Они не были приняты командой из Google.

Еще одна область, которая может принести разочарование — поддержка кодеков и медиа форматов. MPEG-4, например, работает с браузером iOS, но не с Chrome. Apple и Microsoft поддерживают выбор аудиодорожки, и Apple поддерживает видео выбор трека, но Chrome не позволяет вам это использовать.

В целом, Chrone — отличный браузер для тех, кто хочет начать использовать дополнительные функции, которые являются частью нового стандарта.

Браузер №2: Opera

На момент написания, Opera находится на втором месте в тесте HTML5Test, но отстает только на четыре пункта — 519 баллов для версии 29. Как и Chrome, Opera предлагает широкую поддержку новых элементов разметки и форм, так что это такая же хорошая платформа, как и Chrome для желающих поэкспериментировать с ними.

Opera также не поддерживает пользовательские обработчики контента, контекстные элементы стиля и события выполнения сценария. Однако таким же образом поступает любой другой браузер, кроме Firefox.

Самые большие различия лежат в кодеках. Opera не может поддерживать видео форматы MPEG-4 и H.264. Ситуацию осложняет то, что данный браузер также не поддерживает AAC и MP3 -два аудио формата, которые существуют достаточно давно. Таким образом, заставить ваш мультимедийный контент работать с Opera немного сложнее. Opera почти наверняка окружена расходами на лицензирование патентов, и компания, вероятно, предпочла проигнорировать большие затраты на лицензирование. Opera, конечно, поддерживает Ogg Vorbis Ogg Theora и WebM, которые являются достаточно хорошими, если не буквально совместимыми.

Наряду с Internet Explorer и Chrome, Opera развивается в направлении «pointer events», обобщая различные модели ввода. Они направлены, чтобы упростить поддержку мыши, сенсорных экранов и стилусов, предлагая программисту единую простую модель событий, что гармонизирует их.

В целом, Opera — браузер, который впечатляет, но который не получает столько внимания, сколько бы следовало. Он конкурирует только с Chrome по широте поддержки современных веб-функций.

Браузер №3: Mozilla Firefox

По баллам Firefox выглядит, как будто он слегка отстает от двух лидеров. Он набрал 449 баллов в тесте HTML5Test для Firefox 37, но этот факт в значительной степени зависит от важности функций, которую тест определяет сам. Firefox теряет много очков в некоторых областях, где он отстает, и получает меньше очков в тех областях, где ведет.

Много баллов теряется, например, потому, что Firefox не реализует многие из новых полей ввода и интерактивных элементов. Если вы хотите просто добавить один элемент формы для сбора значения даты или времени, Firefox не поможет. За эти упущения, он теряет 26 баллов, но не ясно, действительно ли страдают все программисты. Есть разработанная библиотеки JavaScript для получения данных времени, и они являются кросс-браузерными. Многие из них также отлично стилизованы и лучше выглядит, чем стандартные инструменты. Таким образом, многие программисты выбирают их, а не встроенную в браузеры поддержку.

Тест также не вознаграждает Firefox за проявленную инициативу. События, которые срабатывают, когда сценарий собирается выполнятся, полезны для регулировки, но поддержка этих событий выполнения скрипта дает Firefox только один балл. Добавление рамки к стилям листов полезно для объединения нескольких стилей листов, но это стоит всего два очка в глазах создателей теста HTML5Test.

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

Firefox предлагает широкую поддержку кодеков, но избегает MPEG-4, оставив его в том же лагере, что и Chrome и Opera. Он поддерживает Ogg, WebM и H.264, которых более чем достаточно.

Являются ли эти различия важными? Все зависит от того, как вы оцениваете функции лично. Если вам нравятся все новые элементы форм, Firefox не для вас и вашего проекта. Но во многих отношениях, Firefox предлагает тот же уровень соответствия, как и браузеры с более высокими результатами, если вас не беспокоят новые временные поля ввода.

Браузер №4: Apple Safari

На тесте HTML5Test Safari зарабатывает 396 балла, что делает его отстающим больше, чем это может быть на практике. Как и Firefox, Safari теряет большое количество баллов, не сумев реализовать все возможные формы и элементы разметки. В нем нет опций, чтобы сделать поле ввода для сбора времени или цвета и никакой поддержки для стандартных элементов меню.

Хотя, разработчики игр, могут отпасть. В нем нет поддержки для отслеживания ориентации или движения устройства, для контроля геймпада или более общих указателей событий. Если вы собираетесь создавать что-то для Safari, лучше придерживаться традиционного контента и избегать элементов, которые слишком интерактивны. Оставьте это для App Store.

В мире кодеков, путь Apple отличается от Chrome и Firefox. Safari покажет MPEG-4 и H.264 видео, но отвергнет WebM и Ogg Theora. Хорошей новостью является то, что видео и аудио дорожками можно управлять с помощью JavaScript.

Есть несколько других мест, в которых Safari отстает от более полных наборов функций Chrome, Opera и Firefox. В то время как эти браузеры поддерживают коммуникации peer-to-peer с помощью WebRTC, Apple не предлагает никакой поддержки, как и Internet Explorer. Также Safari не поддерживает service workers для фоновой обработки, кастомные схемы, обработчики контента и настраиваемых провайдеров поиска.

Эти упущения не являются катастрофическими. Apple по-прежнему предлагает широкую поддержку стандарта и обеспечивает многие из самых интересных функций.

Браузер №5: Microsoft Internet Explorer

11-я версия Internet Explorer имеет низкий балл в тесте HTML5Test — лишь 348, но это не должно вызывать большого удивления. Движение стандартов всегда обусловлено надеждой стимулировать конкуренцию и вытеснить Microsoft с позиций контроля над сетью. Все работает именно так, как некоторые надеялись.

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

В то время как, конечно, справедливо — использовать более низкий балл за отсутствие реализации каждого бита стандарта HTML5, это не показывает, насколько хорошо IE будет исполнять код HTML5 в повседневной работе. Быстрый просмотр результатов показывает, что многие из потерянных функций являются новыми и далеко не самыми важными. IE потерял очки, например, за отсутствие поддержки CSS селекторов, типа «in-range», «out-of-range» и «read-only». Ему также не хватает поддержки ряда новых полей ввода для времени.

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

Есть несколько более крупных упущений. Microsoft избегает видео MPEG-4, OGG и WebM, а также аудио PCM, OGG и WebM. Это оставляет MP3-аудио, видео H.264 и Flash-видео в качестве единственных поддерживаемых стандартов. Тем не менее, IE позволяет использовать JavaScript для управления аудио-треками.

Стоит отметить, что Microsoft четко понимает значение соблюдения стандартов, и делает быстрые успехи. Несмотря на то, что версии Internet Explorer не меняются так часто, как у других браузеров, довольно недавно IE9 получал всего 113 баллов. И темпы будут ускоряться в новом веб-браузере Edge (Project Spartan), который будет поставляется с Windows 10.

Последняя версия Edge зарабатывает 390 в тесте HTML5Test. Это лучше, чем IE 11 и лишь немного меньше Safari. Самые большие улучшения по сравнению с IE — поддержка ориентации устройства, движения устройства, контроля геймпада, Web-аудио, DRM, медиа-расширения и отображение адаптивных изображений. Все это показывает, что игры, развлечения и мобильные устройства находятся в верхней части списка приоритетов Microsoft.

HTML5Test является очень точной метрикой, но важно помнить, что он построен для оценки — поддерживают ли браузеры самые новые и самые экспериментальные функции, принятые комитетами HTML5. Он не выдает очки за выполнение хорошей работы при отображении таблицы или за быстрый рендеринг страниц. Это большой перечень функций, а не показатель качества браузера.

Результаты также обеспечивают хорошее представление о корпоративных приоритетах. Не удивительно, что Chrome предлагает отличную поддержку полнофункциональных, похожих на приложения сайтов, которые поставляет Google. Это также упрощает предоставление больших возможностей аппаратной платформе от Google — Хромбукам. Компания немного зарабатывает на той части, которая называется «операционной системой», так что не удивительно, что она хочет, чтобы часть, известная как «браузер», была лучше.

Apple, со своей стороны, кажется, не столь заинтересована в поддержке соревновательного поведения в браузерах, может быть, потому что зарабатывает так много денег на App Store, что не хочет его подорвать.

Многие из функций, с которыми браузеры не в ладах, не имеют значения и для разработчиков. Если вы создаете веб-приложения с большим количеством DOM элементов, которые генерируют AJAX вызовы и реагируют на ответ сервера, все браузеры хорошо справляются с такой работой.

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

В этом смысле, оценка HTML5Test говорит больше о будущем, чем о настоящем. В то время как стандарт HTML 5.0 уже установлен и комитет обратил свое внимание к следующему набору идей, создатели браузеров должны закончить внедрения стандарта. По мере того, как они это делают, все больше и больше веб-разработчиков увидят, что новые функции доступны и готовы к использованию. Только после этого пользователи начнут видеть преимущества.

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

Многие пользователи, при попытке запустить видеоролик на Youtube, получают следующее сообщение – “В настоящее время ваш браузер не распознает ни один из видеоформатов”. Чаще всего с ошибкой воспроизведения сталкиваются владельцы Windows XP с браузером Mozilla FireFox. Также проблема наблюдается в других популярных браузерах: Google Chrome, Яндекс, Opera и, конечно же, Internet Explorer. Сегодня мы расскажем про все возможные причины сбоя и их устранение.

Причины сбоя воспроизведения

Сам баг появился относительно недавно. Связан он с активным переходом сервиса Ютуб на поддержку технологии HTML5, который не поддерживается в браузерах с устаревшими версиями. Ошибка появляется и в обновленных версиях на Windows 7 и 10. Тут стоит говорить о расширениях, блокирующих доступ к отображение видео в формате HTML 5. Третья причина – новый ролик не успел прогрузиться. Давайте рассмотрим все решения, исправляющие сбой.

Исправляем ошибку

Давайте поочередно проверим все вышеуказанные моменты. Сразу замечу, расписывать все полумеры (перезагрузка, новый Flash Player, стирание кэш/куки) я не буду, потому как толку от них не будет. Вам нужно будет проверить следующее.

№1 Проверка обновлений

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


Актуальные версии этих программ включают большинство необходимых видео-кодеков для Ютуба. Проверить, какие именно поддерживаются, можно по этому адресу – youtube.com/html5 . Возможно, некоторые кодеки будут с восклицательным знаком, но обязательно проверьте, что бы стояла галочка напротив первого кодека HTMLVideoElement . Проблема должна исчезнуть.


№2 Блокирующие дополнения

Если прошлый пункт вам не помог – попробуйте отключить лишние расширения. Дело в том, что различные плагины и расширения могут блокировать отображение видео в формате HTML 5. Например, чаще всего вызывают проблему эти плагины – “Flash Player for YouTube™” и “Disable Youtube™ HTML5 Player” . Также сбоят расширения для прямого скачивания, блокировщики рекламы и т.д.

  • Откройте страницу со списком установленных расширений. Например, в Хроме она находится здесь chrome://extensions/ , а в Мозиле тут – about:addons.
  • Поочередно отключайте все активные плагины и проверяйте воспроизведение. Должно помочь.
  • Отдельно упомяну про Flash Player, который конфликтует с новыми версиями Хрома. Его нужно попробовать отключить тоже. Если у вас еще старая версия, то переходим сюда – chrome://plugins, в списке плагинов выделяем флеш и отключаем. В новой версии идем сюда – chrome://settings/content/flash. В пункте “Блокировать” есть опция “Добавить” , я рекомендую вписать туда Ютуб. Для остальных браузеров в сети много информации по отключению Флеш Плеера – пробуйте.


    №3 Новое видео

    Проверьте время выпуска ролика. Если это несколько часов, то проблема может быть со стороны серверов. Многие пользователи отмечают, что подождав немного времени, они запускают видео без проблем. Возможно у вас именно такой случай.

    Заключение

    Если вы все сделали правильно, то ошибка “В настоящее время ваш браузер не распознает ни один из видеоформатов” должна исчезнуть. Напоследок стоит упомянуть, что недавно Mozilla и Chrome отказались от поддержки своего приложения в Windows XP. В таком случае, для решения ошибки, вам нужно будет отдельно устанавливать плагины поддержки кодеков. Вот наглядная видео-инструкция на примере Мозилы.

    Марк Пилгрим

    Перевод: Влад Мержевич

    Когда ваш браузер отображает веб-страницу, он конструирует объектную модель документа (Document Object Model, DOM ) - набор объектов, представленных HTML-элементами на странице. Каждый элемент - каждый

    Каждый и каждый - показан в DOM самостоятельным объектом (есть также глобальные объекты, вроде window или element , но они слишком специфичны).

    Ко всем DOM-объектам можно применить основные свойства, но некоторые объекты имеют больше свойств, чем другие. В браузерах, поддерживающих возможности HTML5, отдельные объекты обладают уникальными свойствами. Заглядывание в DOM подскажет вам, какие возможности поддерживаются.

    Вот четыре основных техники для исследования поддерживаемых браузером технологий. Начиная с более простой и заканчивая комплексной техникой.

    1. Проверка что определенные свойства доступны для глобальных объектов (таких как window или navigator ).

    2. Создаем элемент, затем проверяем, что свойства для этого элемента существуют.

    3. Создаем элемент, затем проверяем, что некоторые методы доступны для этого элемента, затем вызываем этот метод и смотрим возвращаемое значение.

    4. Создаем элемент, устанавливаем для определенных его свойств значения, затем проверяем, возвращаются ли эти значения.

    Библиотека Modernizr

    Открытое программное обеспечение Modernizr это JavaScript-библиотека, распространяемая по лицензии MIT , для проверки поддержки большинства возможностей HTML5 и CSS3. На момент написания книги последняя версия 1.6, убедитесь, что у вас свежая версия. Для использования включите следующую строку в ваш документ.





    Погружение в HTML5



    ...

    Modernizr запускается автоматически, так что не надо использовать никакой функции modernizr_init() для вызова библиотеки. При запуске создается глобальный объект Modernizr , который содержит булево значение для каждой технологии. К примеру, если браузер поддерживает тег , то Modernizr.canvas вернет true . Если браузер не поддерживает эту возможность, то Modernizr.canvas вернет false .

    if (Modernizr.canvas) {

    } else {

    }

    Рисование

    HTML5 определяет тег как «холст для растровой графики, который может использоваться для отображения диаграмм, компьютерных игр или вывода других изображений на лету». Сам холст представляет собой прямоугольник на странице, в котором с помощью JavaScript рисуется, что вы пожелаете. HTML5 определяет набор функций называемых «Canvas API» для рисования фигур, контуров, создания градиентов и трансформации.

    Для проверки Canvas API используется . Если ваш браузер поддерживает рисование, в DOM будет элемент , к которому применим метод getContext() . Если браузер не поддерживает рисование, для

    function supports_canvas() {
    return !!document.createElement("canvas").getContext;
    }

    Эта функция создает фиктивный элемент . Такой элемент не применяется к документу, его даже нельзя увидеть. Он только покоится в памяти, нигде и ничего не делает, подобно лодке в безмятежной реке.

    return !!document.createElement("canvas") .getContext;

    Когда вы создаете фиктивный , его можно проверить на наличие метода getContext() . Этот метод будет существовать, если браузер поддерживает рисование.

    return !!document.createElement("canvas").getContext ;

    Наконец, приводим результат к булевому типу (true или false ) с помощью приема двойного отрицания.

    return !! document.createElement("canvas").getContext;

    Эта функция определяет поддержку основных элементов Canvas API, включая фигуры, контуры, градиенты и текстуры. Она не определяет стороннюю библиотеку explorercanvas, которая используется в Internet Explorer.

    Вместо написания своей функции вы можете использовать Modernizr для определения поддержки Canvas API.

    if (Modernizr.canvas ) {
    // Можно что-нибудь рисовать!
    } else {
    // Увы, нет встроенной поддержки рисования
    }

    Рисование текста

    Даже если ваш браузер поддерживает Canvas API, это еще не значит, что он также поддерживает и API для рисования текста. Становление Canvas API заняло какое-то время, и функции для текста в этой игре были добавлены позже. Некоторые браузеры поддерживающие рисование пустились в плавание еще до того, как API для текста был завершен.

    Проверка на рисование текста основана на . Если ваш браузер поддерживает рисование, то для созданного элемента будет доступен метод getContext() .Если браузер не поддерживает рисование, для будут работать только основные свойства, но никак не специфичные.

    function supports_canvas_text() {
    if (!supports_canvas()) { return false; }
    var dummy_canvas = document.createElement("canvas");
    var context = dummy_canvas.getContext("2d");
    return typeof context.fillText == "function";
    }

    Данный пример начинается с проверки на возможность рисования, используя функцию supports_canvas() , вы ее видели в предыдущем разделе. Если браузер не поддерживает Canvas API, значит, нет и рисования текста!

    if (!supports_canvas() ) { return false; }

    Далее, вы создаете фиктивный элемент и получаете его контекст. Это гарантированно работает, поскольку функция supports_canvas() уже проверила, что метод getContext() существует для всех объектов .

    var dummy_canvas = document.createElement("canvas");
    var context = dummy_canvas.getContext("2d") ;

    Наконец, вы проверяете, есть ли в контексте рисования функция fillText() . Если да, значит рисование текста доступно. Ура!

    return typeof context.fillText == "function" ;

    Вместо написания своей функции вы можете использовать Modernizr для определения поддержки рисования текста.

    if (Modernizr.canvas ) {
    // Можно что-нибудь рисовать!
    } else {
    // Увы, нет встроенной поддержки рисования
    }

    Видео

    HTML5 определяет новый элемент, названный , для вставки видео на вашу страницу без использования сторонних плагинов вроде Apple QuickTime® или Adobe Flash®.

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

    Браузеры, которые не поддерживают HTML5-видео, полностью игнорируют тег , но это можно использовать в своих интересах и указать браузеру проигрывать видео через сторонний плагин. Крок Кэмен назвал такое решение Видео для каждого! , в нем используется HTML5-видео, если оно доступно и обращение к QuickTime или Flash для старых браузеров. Это решение не использует JavaScript и работает фактически во всех браузерах включая мобильные.

    Если вы хотите большего, чем бульканье видео и его вывод на веб-странице, необходимо использовать JavaScript. При проверке на поддержку видео используется . Если браузер поддерживает HTML5-видео, в DOM будет создан объект, ассоциированный с , у которого есть метод canPlayType() . Если браузер видео не поддерживает, то для созданного в DOM объекта будут работать только типовые свойства, доступные для всех элементов. Вы можете проверить поддержку видео с помощью следующей функции.

    function supports_video() {
    return !!document.createElement("video").canPlayType;
    }

    Вместо написания своей функции вы можете использовать Modernizr для определения поддержки видео.

    if (Modernizr.video ) {
    // Смотрим кино!
    } else {
    // Нет встроенной поддержки видео
    }

    Форматы видео

    Форматы напоминают языки, на которых говорят и пишут люди. В России некоторые газеты могут выходить на английском языке, но если вы читаете только по-русски, вряд ли они будут для вас полезны. Для проигрывания видео браузер должен понимать тот «язык», на котором написано видео.

    «Язык» видео называется кодеком - это алгоритм, который используется для кодирования видео в поток битов. По всему миру распространено больше дюжины всяких кодеков. Какой же из них выбрать? К сожалению, браузеры не могут договориться о едином кодеке для проигрывания видео. Тем не менее, их количество сократилось до двух. Один из них требует денежных отчислений (потому что основан на патенте), но работает в Safari и iPhone. Другой кодек свободный и работает в таких браузерах как Chrome и Firefox.

    Для проверки на поддержку форматов видео используется . Если браузер поддерживает HTML5-видео, в DOM будет создан объект, ассоциированный с , у которого есть метод canPlayType() . Этот метод говорит о том, что браузер поддерживает некоторые форматы.

    Эта функция проверяет, что формат H.264 поддерживается.

    function supports_h264_baseline_video() {


    return v.canPlayType("video/mp4; codecs="avc1.42E01E, mp4a.40.2"");
    }

    Функция начинается с проверки на поддержку HTML5-видео с помощью функции supports_video() , о ней шла речь в предыдущем разделе. Если браузер не поддерживает видео, значит, не поддерживает и форматы!

    if (!supports_video() ) { return false; }

    Затем создается фиктивный элемент , который не будет виден и вызывается метод canPlayType() . Этот метод гарантированно будет доступен, поскольку функция supports_video() это обеспечивает.

    var v = document.createElement("video");

    Видео формат в действительности это комбинация разных вещей. В технической терминологии вы спрашиваете браузер, может ли он проиграть видео H.264 со звуком AAC в контейнере MPEG-4.

    Функция canPlayType() не возвращает значение true или false , при распознавании формата функция возвращает следующую строку:

    "probably" - браузер уверен, что сможет воспроизвести этот формат;
    "maybe" - браузер думает, что, скорее всего, сможет воспроизвести;
    "" (пустая строка) - браузер не знает такого формата.

    Вторая функция проверяет открытие формата видео через Firefox и других браузеров с открытым кодом.

    function supports_ogg_theora_video() {
    if (!supports_video()) { return false; }
    var v = document.createElement("video");
    return v.canPlayType("video/ogg; codecs="theora, vorbis"" );
    }

    И наконец, WebM, новый открытый (и свободный от отчислений) видео-кодек, который включен в новые версии основных браузеров, таких как Chrome, Firefox и Opera. Вы можете использовать аналогичную технику для определения поддержки видео WebM.

    function supports_webm_video() {
    if (!supports_video()) { return false; }
    var v = document.createElement("video");
    return v.canPlayType("video/webm; codecs="vp8, vorbis"" );
    }

    Вместо написания своей функции вы можете включить Modernizr (версии 1.5 и старше) для определения поддержки разных форматов видео.

    if (Modernizr.video) {
    // Да, можно смотреть видео! Но какое?
    if (Modernizr.video.webm ) {
    // Попробуем WebM
    } else if (Modernizr.video.ogg ) {
    // Попробуем Ogg Theora + Vorbis в контейнере Ogg
    } else if (Modernizr.video.h264 ){
    // Попробуем H.264 + AAC в контейнере MP4
    }
    }

    Локальное хранилище

    Хранилище HTML5 позволяет сайтам сохранять информацию на локальном компьютере и обращаться к ней позже. Идея напоминает кукисы, но хранилище предназначено для сохранения гораздо большего объема информации. Кукисы ограничены в размерах, и ваш браузер каждый раз посылает веб-серверу запрос новой страницы (если на это есть время и позволяет полоса пропускания). Хранилище HTML5 остается на вашем компьютере, и сайты могут обращаться к нему через JavaScript после загрузки веб-страницы.

    Спроси профессора Маркапа

    ☞ В. Локальное хранилище действительно является частью HTML5? Почему же оно выделено в отдельную спецификацию?

    О. Краткий ответ да, локальное хранилище это часть HTML5. Развернутый ответ такой - локальное хранилище входит в спецификацию, но отделено от нее, потому что некоторые люди из Рабочей группы HTML5 пожаловались, что HTML5 стал слишком большим. Если это звучит, как разрезание пирога на большее количество кусочков для уменьшения общего числа калорий, что ж, добро пожаловать в дурацкий мир стандартов.

    Для проверки поддержки хранилища HTML5 используется . Если браузер поддерживает эту технологию, то будет доступно свойство localStorage для объекта window . Если же браузер не поддерживает хранилище, то свойство localStorage вернет значение undefined . В старых версиях Firefox была ошибка, при которой возникало исключение, если кукисы были отключены. Так что вся проверка проходит с использованием конструкции try ...catch .

    function supports_local_storage() {
    try {
    return "localStorage" in window && window["localStorage"] !== null;
    } catch(e){
    return false;
    }
    }

    Вместо написания своей функции вы можете использовать Modernizr для определения поддержки локального хранилища.

    if (Modernizr.localstorage ) {
    // Хранилище доступно!
    } else {
    // Увы, нет поддержки локального хранилища
    }

    JavaScript чувствителен к регистру, атрибут Modernizr должен писаться как localstorage (в нижнем регистре), при этом свойство DOM вызывается как window.localStorage (смешанный регистр).

    Спроси профессора Маркапа

    ☞ В. Как насчет безопасности моего хранилища HTML5? Кто-нибудь может его прочитать?

    О. Только те, кто имеет непосредственный доступ к вашему компьютеру, могут просмотреть (или изменить) ваши данные в хранилище. Через браузер любой сайт может прочитать и модифицировать собственные значения, но другие сайты не смогут получить к ним доступ.

    Фоновые вычисления

    Фоновые вычисления обеспечивают стандартный способ запуска JavaScript в браузере в фоновом режиме. С помощью этой технологии вы можете порождать несколько «потоков», которые запускаются одновременно, раньше или позже. Эти «фоновые потоки» могут производить сложные математические расчеты, делать сетевые запросы или осуществлять доступ к локальному хранилищу, пока пользователь пролистывает документ, щелкает мышью или набирает текст.

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

    function supports_web_workers() {
    return !!window.Worker;
    }

    Вместо написания своей функции вы можете использовать Modernizr для определения поддержки фоновых вычислений.

    if (Modernizr.webworkers ) {
    // window.Worker доступно!
    } else {
    // Нет встроенной поддержки фоновых вычислений
    }

    JavaScript чувствителен к регистру, атрибут Modernizr должен писаться как webworkers (в нижнем регистре), при этом свойство DOM вызывается как window.Worker (с заглавной буквой W).

    Оффлайновые приложения

    Читать статичные веб-страницы оффлайн довольно просто: подключаетесь к Интернету, загружаете веб-страницу, отключаетесь от Интернета, уезжаете в уединенное место и читаете страницы на досуге. Для сбережения времени можно пропустить шаг насчет уединенного места. Но как насчет веб-приложений подобных Gmail или Google Docs? Спасибо HTML5, теперь любой (а не только Google) может создать приложение, которое будет работать оффлайн.

    Оффлайновое приложение начинается как онлайновое. Когда вы первый раз посещаете сайт, поддерживающий оффлайновую работу, веб-сервер сообщает браузеру, какие файлы и в каком порядке нужны для работы. Это могут быть любые файлы - HTML, JavaScript, изображения, даже видео. Как только браузер скачает все необходимые файлы, вы можете посещать сайт даже без подключения к Интернету. Ваш браузер будет уведомлен, что вы отключены от сети, и надо использовать скачанные ранее файлы. Когда вы в следующий раз войдете в сеть, любые сделанные вами изменения могут быть отосланы на веб-сервер.

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

    function supports_offline() {
    return !!window.applicationCache;
    }

    Вместо написания своей функции вы можете использовать Modernizr для определения поддержки оффлайновых приложений.

    if (Modernizr.applicationcache) {
    // window.applicationCache доступно!
    } else {
    // Увы, без сети ничего не работает
    }

    Учтите, что JavaScript чувствителен к регистру. Атрибут Modernizr должен писаться как applicationcache (в нижнем регистре), при этом свойство DOM вызывается как window.applicationCache (смешанный регистр).

    Геолокация

    Геолокация это способ выяснить, где вы находитесь в мире, по усмотрению можно делиться этой информацией с доверенными людьми. Существует несколько способов определить ваше положение - по IP-адресу, подключению к беспроводной сети, сотовому телефону или через GPS оборудование которое вычисляет координаты (широту и долготу) через спутники в небе.

    Спроси профессора Маркапа

    ☞ В. Геолокация это часть HTML5? Почему мы говорим о ней?

    О. Поддержка геолокации включена в браузеры для будущей работы с новыми возможностями HTML5. Строго говоря, геолокация была стандартизирована Рабочей группой по геолокации, которая отделена из Рабочей группы HTML5. Но я все равно в этой книге говорю о ней, потому что эта часть развития Веба происходит в данный момент.

    Для проверки поддержки геолокации используется . Если браузер поддерживает геолокацию, будет доступно свойство geolocation для глобального объекта navigator . В противном случае свойство geolocation будет недоступно. Вот как проверить поддержку геолокации.

    function supports_geolocation() {
    return !!navigator.geolocation;
    }

    Вместо написания своей функции, можно использовать Modernizr.

    if (Modernizr.geolocation ) {
    // Можно смотреть, где вы находитесь!
    } else {
    // Нет встроенной поддержки геолокации.
    }

    Если браузер не поддерживает исходно геолокацию, не стоит терять надежду. Плагин с открытым исходным кодом Gear от Google работает в Windows, Mac, Linux, Windows Mobile и Android. Он расширяет возможности старых браузеров, которые не поддерживают новомодные вещи, описанные в этом разделе. В частности, Gear поддерживает геолокацию. Это не то же самое, что navigator.geolocation , но выполняет те же задачи.

    Поля ввода

    Вы знаете все о формах, не так ли? Пишем , вставляем несколько , может быть и заканчиваем все кнопкой .

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

  • для поиска
  • для ввода чисел
  • ползунок
  • для выбора цвета
  • для телефонного номера
  • для веб-адресов
  • для почтовых адресов
  • для выбора календарной даты
  • для месяца
  • для недели
  • для времени
  • для указания даты и времени
  • для местной даты и времени
  • Проверка на поддержку полей ввода происходит с помощью . Вначале вы должны создать фиктивный элемент в памяти. По умолчанию значением атрибута type для тега выступает text . В дальнейшем это окажется важно.

    var i = document.createElement("input");

    i.setAttribute("type", "color");

    Если браузер поддерживает указанное поле ввода, тогда свойство type вернет установленное значение. В противном случае браузер проигнорирует это значение и вернет text .

    return i.type !== "text";

    Вместо написания тринадцати отдельных функций для проверки, вы можете использовать Modernizr для определения поддержки новых полей. Библиотека Modernizr повторно использует один для эффективного определения всех 13 типов. Затем строится хэш, с именем Modernizr.inputtypes содержащий 13 ключей со значениями атрибута type и 13 булевых значений (true , если поддерживается и false , если нет).

    if (!Modernizr.inputtypes.date ) {
    // Нет встроенной поддержки для
    }

    Подсказывающий текст

    Кроме новых типов, HTML5 включает несколько небольших правок для имеющихся форм. Одно из таких усовершенствований это подсказывающий текст для тега . Такой текст показывается внутри поля, пока оно не будет очищено или не получит фокус. Когда вы щелкаете в поле, подсказывающий текст исчезает.

    Для проверки подсказывающего текста применяется . Если ваш браузер поддерживает эту возможность, в DOM будет создан объект соответствующий , у которого имеется свойство placeholder . В противном случае, это свойство для будет недоступно.

    function supports_input_placeholder() {

    return "placeholder" in i;
    }

    Вместо написания собственной функции, вы можете использовать Modernizr для проверки.

    if (Modernizr.input.placeholder ) {
    // Подсказывающий текст будет виден!
    } else {
    // Нет поддержки подсказывающего текста,
    // надо использовать скрипты
    }

    Автофокус форм

    Веб-сайты могут использовать JavaScript для автоматического перемещения фокуса к первому элементу формы. К примеру, на главной странице сайта Google.ru включен автофокус для поля ввода поискового запроса, поэтому не приходится перемещать в него курсор. Это удобно для большинства людей, за исключением продвинутых пользователей. Если нажать пробел, произойдет прокрутка страницы, но не в случае использования автофокуса, поскольку фокус находится в текстовом поле. Вместо прокрутки в тексте будет набран пробел. Если фокус находится в другом текстовом поле, пока страница загружается, скрипт автофокуса может «услужливо» перенести фокус обратно к исходному полю, тем самым заставляя вас набирать текст в неверном месте.

    Поскольку автофокус делается на JavaScript, могут возникнуть сложности при решении этих крайних случаев, и не так уж много решений для тех людей, которые не желают, чтобы их фокус «похищался».

    Решением этих проблем является атрибут autofocus , который применяется ко всем элементам форм. Атрибут autofocus делает именно то, о чем и говорит его название: перемещает фокус к определенному полю. Поскольку для его работы используется разметка HTML, а не скрипт, то поведение будет одинаковым для всех сайтов. К тому же разработчики браузеров (или авторы расширений) могут предложить пользователям возможность отключать автофокус.

    Проверка на поддержку автофокуса основана на . Если автофокусировку в формах, в DOM будет создан объект для представления , у которого есть свойство autofocus . В противном случае это свойство не будет доступно. Вы можете проверить автофокус с помощью следующей функции.

    function supports_input_autofocus() {
    var i = document.createElement("input");
    return "autofocus" in i;
    }

    Вместо написания собственной функции, вы можете использовать Modernizr для проверки поддержки автофокуса.

    if (Modernizr.input.autofocus) {
    // Автофокус работает!
    } else {
    // Нет поддержки автофокуса,
    // придется снова обращаться к скриптам
    }

    Микроданные

    Микроданные это стандартный путь добавить дополнительную семантику на ваши веб-страницы. К примеру, вы можете использовать микроданные для сообщения, что фотография доступна под специальной лицензией. Также вы можете применять микроданные для разметки страницы «Обо мне». Браузеры, их расширения и поисковые системы конвертируют разметку микроданных в vCard - стандартный формат для обмена контактной информацией.

    Стандарт микроданных HTML5 включает как разметку HTML (в первую очередь для поисковых систем), так и функции DOM (преимущественно для браузеров). Вашим веб-страницам не повредит, если вы добавите в них разметку микроданных. Это не более чем несколько атрибутов, и поисковики, которые не понимают формат микроданных, их проигнорируют. Но если нужно получить доступ или управлять микроданными через DOM, тогда нужно проверять поддерживает ли браузер соответствующий API.

    Для проверки применяется . Если браузер поддерживает микроданные, тогда будет доступна функция getItems() для глобального объекта document . Если браузер не поддерживает микроданные, тогда эта функция будет недоступна.

    function supports_microdata_api() {
    return !!document.getItems;
    }

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

    API истории

    API истории HTML5 представляет собой стандартизированный способ манипулировать историей браузера с помощью скрипта. Часть этого API - навигация по истории - была доступна в предыдущих версиях HTML. Новая часть в HTML5 это способ добавления записей в историю браузера и реагирование на удаление этих записей из стека, когда пользователь нажимает кнопку браузера «Назад». Это означает, что URL может продолжать выполнять свою работу как уникальный идентификатор для текущего ресурса, даже в нагруженных скриптами приложениях, которые не всегда полностью обновляют страницу.

    Для проверки применяется . Если браузер поддерживает API истории, тогда будет доступна функция pushState() для глобального объекта history . Если браузер не поддерживает API истории, тогда эта функция будет недоступна.

    function supports_history_api() {
    return !!(window.history && history.pushState);
    }

    Вместо написания собственной функции, вы можете использовать Modernizr.

    if (Modernizr.history) {
    // Управление историей работает!
    } else {
    // Нет поддержки истории,
    // попробуйте другие решения вроде