2011-08-25 8 views
7

私のウェブサイトはhttp://visualise.ca/です。サムネイルをクリックして投稿を読み込むと、そのページ内の投稿がajaxを使って読み込まれます。Window.location.hashヘルプで必要な構文

$("#close").live("click", function(event) { 
    $("#board").fadeOut("slow"); 
    $("#board-wrapper").slideUp("slow"); 
    $("html,body").delay(1000).animate({scrollTop: 0}, 300); 
    window.location.hash = ""; 
    window.history.pushState(null,null,site_url+"/"); 
    return false; 
}); 

をしかし、IE8で、それはバックhttp://visualise.ca/#代わりのhttp://visualise.ca/にそれを変更する:あなたはポストを閉じたときには、ページをリロードせずにバックhttp://visualise.ca/へのURLを変更するためにこのコードを使用しています。これを修正し、http://visualise.ca/に変更されていることを確認する方法はありますか?

+2

IE8はhtml5履歴APIをサポートしていません。https://github.com/balupton/history.jsのようなフォールバックの使用を検討してください。 – anderssonola

答えて

1

最近、私は最近多くのアヤックスの歴史をしています。私は自分の実装を試しています。ここで私はページとモーダル、そして4番目と4番目のページをナビゲートします。非常に良い進歩を遂げる。

テストの開始以来、私はルートハッシュに気付きました。それがBROWSER BACKボタンをクリックした場合にのみ、ハッシュ(#)が失われます。ハッシュを ''に戻すと、最後に/#が表示されます。

IE8に関する限り、私はIE8/iframeのハックをまだテストしていないので、解決策はありませんが、iFrameハックを使用しているとは思えません。

私のソリューションでは、ハッシュと純粋なコマンドコントロールの組み合わせを使用しています。私は2週間以内に完全にテストされた最終版を持っているべきです(希望的な考え方)。

さらに、URLの最後にハッシュ/シャープが残っているかどうかを気にします。私は一度ウェブサイトにアクセスしても、そのURLを見ていません。私はちょうどページの内容を見ます。本当に、URLをコピーして貼り付けたいときだけURLが重要であると私は打ち明けました。それ以外は、決して見ていない。

0
window.location = window.location.href.replace(/#.*/, ""); 

これはIEで動作します。

+1

これはページをリロードします。それはしないでください。 ;-) – Gab

0
$('#close').click(function(){ 

window.location = "http://visualise.ca/"; 

}); 
+1

これはページをリロードします。いいえ;-) – Gab

3

これはそれを停止しませんか?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
<script> 
    $(document).ready(function() {  
    $(".testPhoto").click(function(event){ 
     event.stopPropagation(); 
     alert("do something"); 
     return false; 
    }); 
}); 
</script> 
<a class="testPhoto" href="#testPhoto" onclick="testPhoto">Test Photo</a> 
1

IE9は、終了ハッシュなしでページをリロードします。#。私の提案は、IEをチェックし、コンテンツを削除または空白にすることです。あなたが正確な方法を望むなら、いくつかのIEの癖をかわす必要があります。

if (jQuery.browser.msie && (parseInt(jQuery.browser.version) < 9)) { 
    window.location = 'http://visualise.ca"; 
    document.execCommand('stop'); 
}