2013年2月15日金曜日

pushStateに対応しているかを調べるスクリプト

Ajaxを使ったページを開発している時に、履歴を残す必要が出てきたのでpushStateに関して色々とテストしてましたが。
どうもスマホでは対応状況がバラバラみたいだということに気がつきました。
そこで、とりあえず手軽にpushStateに対応しているかどうかを確認するためのスクリプトをメモしておきます。

$(document).ready(function() {
 if ('pushState' in history){
  alert(1);
  location.hash = "#good";
 } else {
  alert(2);
  location.hash = "#bad";
 }
});

困ったことに、Androidの標準ブラウザはpushStateに対する対応状態がバラバラみたいです。
今のところ、Ajaxを使いながら履歴を残す処理をするなら、ブラウザ別に処理を分けた方がいいように感じます。