Я використовую вхідні дзвінки API API HTML5, і мені це відомо проблеми сумісності між веб-переглядачами, але в моєму конкретному випадку використання це не означаєматерія. Для моїх обмежених потреб браузери поводяться послідовно, а таблиця у наведеному вище посиланні розповідає ту саму історію. Тому я не хочу додати ще одну бібліотеку JS на сторінку (History.js), але я безумовно хочу, щоб вона виграшно не працювала в браузерах, які не підтримують їх. Я не хочу, щоб вони видавали JS помилки.
Наприклад, IE (і я думаю, що інші веб-переглядачі, які не підтримують) також видаляє цю помилку JS: Object doesn"t support property or method "replaceState"
Я спробував це зробити, але це не працює:
window.history = window.history || {};
if (jQuery.isEmptyObject(window.history)) {
window.history.prototype.replaceState = function(a,b,c) {};
window.history.prototype.pushState = function(a,b,c) {};
}
Відповіді:
2 для відповіді № 1Перевірте, чи є pushState
існує в об’єкті історії.
if( !(window.history && "pushState" in window.history) )