history.pushState

画面遷移せずにURL枠の表示を書き換える

changeContents

AjaxでもURLを更新して履歴を作れるHTML5のpushState試してみた

view source

JavaScript

function changeContents(url){
  $('#contentsSample').text(url);
  return false;
}

$(function(){
/*
  var obj = null;
  var title = '';
  var url = '/pushState';
  history.pushState(obj, title, url);
*/

  //リンクがクリックされたとき、URLを書き換える
  $('.ajax_link a').click(function(e) {
    e.preventDefault();
    var url = $(this).attr('href');
    changeContents(url);
    window.history.pushState(null, null, url);
    return false;
  });


  //URLの変化を監視して、イベントを実行する
  window.addEventListener('popstate', function(e) {
    console.log(location.pathname);
    changeContents(location.pathname);
  });
  // jQueryでも可能/*
  $(window).on('popstate', function(e) {
    console.log('jquery popstate');
  });



});


CSS

HTML

ページのソースを表示 : Ctrl+U , DevTools : F12

view-source:https://hi0a.com/demo/-js/js-history-pushstate/

ABOUT

hi0a.com 「ひまアプリ」は無料で遊べるミニゲームや便利ツールを公開しています。

プログラミング言語の動作デモやWEBデザイン、ソースコード、フロントエンド等の開発者のための技術を公開しています。

必要な機能の関数をコピペ利用したり勉強に活用できます。

プログラムの動作サンプル結果は画面上部に出力表示されています。

環境:最新のブラウザ GoogleChrome / Windows / Android / iPhone 等の端末で動作確認しています。

画像素材や音素材は半分自作でフリー素材配布サイトも利用しています。LINK参照。

動く便利なものが好きなだけで技術自体に興味はないのでコードは汚いです。

途中放置や実験状態、仕様変更、API廃止等で動かないページもあります。