Да - на их сайте они говорят:
Обеспечение кросс-совместимый опыт для всех HTML5 браузеров (все они реализовать API HTML5> История немного по-другому, вызывая различные модели поведения, а иногда жуки -> История .js исправляет это обеспечивает опыт, как и ожидалось/тот же/большой во всем> браузеры HTML5)
эти различия невелики, и не прибегая к помощи было достаточно, чтобы найти их - я должен был искать в исходном коде - похоже, что основной является фиксация функциональности HTML5 в сафари. Есть две проблемы с реализацией сафари: один из них - тот, что history.back не возвращается к состоянию хэша, заданному location.hash, которое обычно заменяется на history.replaceState.
Во-вторых, когда занятое сафари не сможет применить изменения состояния.
Соответствующий History.js исходный код:
History.bugs = {
/**
* Safari 5 and Safari iOS 4 fail to return to the correct state once a hash is replaced by a `replaceState` call
* https://bugs.webkit.org/show_bug.cgi?id=56249
*/
setHash: Boolean(!History.emulated.pushState && navigator.vendor === 'Apple Computer, Inc.' && /AppleWebKit\/5([0-2]|3[0-3])/.test(navigator.userAgent)),
/**
* Safari 5 and Safari iOS 4 sometimes fail to apply the state change under busy conditions
* https://bugs.webkit.org/show_bug.cgi?id=42940
*/
safariPoll: Boolean(!History.emulated.pushState && navigator.vendor === 'Apple Computer, Inc.' && /AppleWebKit\/5([0-2]|3[0-3])/.test(navigator.userAgent)),
Так что я думаю, ваше решение сводится к тому, беспокоит ли вас Safari 5 и Safari IOS 4.
Спасибо за полезное исследование. Ошибки Safari не являются для нас разбойниками, поэтому мы придерживаемся собственной 'window.history'. Однако существуют различия браузера (наиболее примечательным является [когда вызывается 'window.onpopstate'] (http://stackoverflow.com/questions/3700440/html5-onpopstate-on-page-load)), поэтому мы имеем должен был кодировать вокруг них. – jamix