3

構文について助けが必要です。

私のサイトは、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

1 に答える 1

4

PushStateはハッシュに対する操作ではありません。<html5互換にしたい場合は、ハッシュを使用する必要があります。

pushStateはページを変更せずにURLを変更しています:

履歴を配列として表示する場合は、history = [];

ブラウザの空のフロントページを開き、page1.htmlに移動します

現在、履歴は=['page1.html']です。

page1.htmlからURLpage2.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をロードするとき:

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

ハッシュを操作したい場合は、次のようにすることができます。

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

そして、あなたがあなたのajaxをロードするとき:

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

pushStateを使用している場合は、URLが、持っていないサブフォルダーを指す操作を終了する可能性があることに注意してください。したがって、何らかの.htaccess書き換えコードが必要です。

于 2011-08-10T09:42:19.567 に答える