Проверить совместимость браузера для поддержки API истории HTML5?
Есть ли способ проверить браузер, поддерживает ли он "API истории HTML5" с помощью JavaScript.
Нужно ли проверять все браузеры и его версии с длинным списком условий в инструкции if.
Или просто проверить любой объект функции, используя оператор "if" достаточно......
Ответы
Ответ 1
Проверка существования метода pushState()
для глобального объекта истории должна быть достаточной.
function supports_history_api() {
return !!(window.history && history.pushState);
}
Для более общего определения функции HTML 5 я бы посмотрел на Modernizer
http://diveintohtml5.info/detect.html#modernizr
Это изолирует ваш код от беспорядочной специфики каждого теста, делая код более читаемым и менее подверженным ошибкам. С помощью Modernizer script на вашей странице вы просто выполните:
if (Modernizr.history) {
// history management works!
} else {
// no history support :(
// fall back to a scripted solution like History.js
}
Ответ 2
Проверка наличия объектов history.pushState
и history.replaceState
должна быть достаточной, поскольку в целом это достаточно для обнаружения функции вообще.
Ответ 3
Вы можете использовать canisuse.js script, чтобы определить, поддерживают ли ваши браузеры историю или нет
caniuse.history()
Ответ 4
Вы можете проверить погоду или не зарегистрировать функцию:
if (typeof history.pushState != 'undefined') {
//Enabled
}
Затем просто замените//Включено тем, что вы хотите сделать, если оно поддерживается.