2012-03-10 8 views
0

私はヒストリーやハッシュに関して良い(そして完全な)記事を見つけようとしていますが、無駄です。私が見つけたのは図書館のことでしたが、私は自分の手でAJAXの歴史を書きたいと思っています。javascriptでajaxで履歴を操作するにはどうすればいいですか?

私が知っていることは、履歴api(#が付いていない)を使用することです。履歴apiをサポートしていないブラウザを使用しているユーザーの場合は、<head>スクリプトに置き換えます.example.com/adress1#/adress2からex.com/adress2へリダイレクトされます(これはF5用です)。

お手伝いできますか?

+0

これまで何を試みましたか(この質問を投稿するのに加えて)?あなたはどんな困難に遭遇しましたか? –

+0

https://github.com/balupton/History.jsを見ましたか?これは、古いブラウザの履歴apiとハッシュの両方をサポートします。 – ThiefMaster

+0

私はライブラリを使いたくありません!あなたはそれを読みました? 「私が見つけたのは図書館だが、私の手によって私のアヤックスの歴史を書きたい。 –

答えて

0

このようなソリューションをお探しですか? https://github.com/devote/HTML5-History-APIそれは完全に古いブラウザで歴史をエミュレート:

$(".link").click(function() { 
    window.location.hash = "param"; 
}); 
$(init); 

function init() { 
    ajax_page_handler(); 
    page_load($(window.location).attr("hash")); 
} 

function page_load($href) { 
    if ($href != undefined && $href.substring(0, 1) == '#') { 

     if ($href === "#param") { 
      // load the relevant data 
     } 

     $('html, body').animate({ 
      scrollTop: 0 
     }, 'slow'); // bonus 
    } 
} 

function ajax_page_handler() { 
    $(window).bind('hashchange', function() { 
     $href = $(window.location).attr("hash"); 
     page_load($href); 
    }); 
}​ 
+0

いいえ、ライブラリなしのネイティブソリューションが必要です。 –

+0

これは履歴管理用のライブラリではありません。私はちょうどjQueryを使いました。 jQueryを使用する必要がない場合は、純粋なJavaScriptに変換することができます –

+0

私の手で書くためにネイティブソリューションを探していました。しかし、役に立たないです。 私はこの履歴のリリースに関するいくつかのアイデアを持っています: #1。すべてのリンクにonclickイベントをバインドします: 'Ajax link '。 this - これは 'this.href'を読むためです(しかし、' event.target || event.srcElement' .. dunnoで読むこともできます)、event - 読み込むにはどのマウスボタンをクリックしますか(3ならtrueを返しますもし1 - +がfalse(単純なリンクではありません)を返したら.. #2私はそれを書きました: ''スクリプトの場所で、私をリダイレクトします/ –

0

は、古いブラウザでは、このライブラリを使用することができます。余分な/不要なコードを書く必要はありません。

関連する問題