2011-08-10 1 views
3

構文に関する助けが必要です。window.history.pushStateのヘルプ

私のサイトは、AJAXを使用して#board div内のブログ投稿を読み込み、#closeをクリックして閉じます。投稿を読み込むと、URLはhttp://www.visualise.ca/#!/anne-au-cherryのようになり、投稿を閉じるとhttp://www.visualise.ca/に戻ってみたいと思います。以下は私に与えますhttp://www.visualise.ca/#/

$("#close").live("click", function(event) { 
    $("#board").slideUp("slow"); 
    window.location.hash = "#/"; 
    window.history.pushState(null,null,site_url+"/"); 
    return false; 
}); 

1)誰かが助けてくれますか?

2)ブラウザがhtml5をサポートしていない場合はどうなりますか?

あなたの時間と助けに感謝します。

更新:私の 'site_url'変数にタイプミスがありました。

答えて

4

PushStateはハッシュに対して操作ではありません。 < html5と互換性があるようにするには、ハッシュを使用する必要があります。

pushStateがページを変更せずに、URLを変更している。

あなたは配列としての歴史を見れば、history = [];

あなたは

をpage1.htmlするには、ブラウザの空のフロントページを開いて行く今歴史があります= ['page1.html']

url page2.htmlを使用してpage1.htmlからpushStateを起動すると、履歴は現在['page1.html','page2.html']になり、アドレスバーにはpage2.htmlが表示されます。

ブラウザがpushStateをサポートしない場合、何もしません。だからあなたの例:

$("#close").live("click", function(event) { 
    $("#board").slideUp("slow"); 
    window.history.pushState(null, null, site_url+"/"); 
    return false; 
}); 

とするとき、あなたのAJAXをロード:

$("#close").live("click", function(event) { 
    $("#board").slideUp("slow"); 
    window.location.href = "#/" 
    return false; 
}); 

:あなたはハッシュで動作するようにしたい場合は

window.history.pushState(null,null,site_url + "/" + ajax_url); 

あなたはこのような何かを行うことができますそして、あなたがあなたのajaxをロードするとき:

window.location.href = "#/" + ajax_url 

あなたはpushStateは、URLの注意して使用している場合には持っていけないので、あなたは私が私のブラウザはときに、ページをリロードせずにURLを変更したいの.htaccess書き換えコード

+0

のいくつかの種類を必要とサブフォルダ内のopポインティングを終了することができます#closeをクリックします。私が望むURLはhttp://www.visualise.ca/ですが、http://www.visualise.ca/#//を提供しています – Gab

+0

window.location.href = ""はどうですか? – andlrc

+0

それはすべて私のせいです...私のsite_url変数にタイプがありました...!申し訳ありませんが私はあなたの貴重な時間を失うようにしました:-( – Gab