1

ネイティブのHTML5HistoryAPI呼び出しを使用しており、クロスブロワーの互換性の問題を認識していますが、特定のユースケースでは、それらは問題ではありません。私の限られたニーズのために、ブラウザは一貫して動作しており、上記のリンクの表は同じ話をしています。そのため、ページ(History.js)に別の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) {};
}
4

1 に答える 1

2

pushState履歴オブジェクトに存在するかどうかを確認してください。

if( !(window.history && 'pushState' in window.history) )
于 2012-12-11T20:16:37.033 に答える