2011-12-23 8 views
4

私はCSSでツリービューを実装しています。ユーザーがツリービュー上のフォルダをクリックすると、サーバーのラウンドトリップを起こさずにアドレスバーのURLを更新したいと考えています。サーバーのラウンドトリップなしでアドレスバーを更新することはできますか?

HTMLが少し次のようになります -

<ol> 
    <li> 
     <a href="www.example.com/blah?id=12345">Folder</a> 
     <ol> 
      <li>Child</li> 
     </ol 
    </li> 
<ol> 

私が持っているCSSは、フォルダのエキスパンドを処理しますが、私は特定のフォルダに非常に私ができるディープリンクを更新するために、アドレスバーのURLが欲しいですサーバーへの往復を行うコードの観点からの必要はありません これを実現する方法はありますか?私はpotention phishingのためにこれが不可能かもしれないという気持ちがありますか?私はHTML5、CSS2/3、jQueryとASP.NET MVC3

答えて

4

はい、HTML5履歴APIでは、gawkerサイトとgithubのように可能です。しかし、条件は両方のページが同じサーバーから来ていることです。 history.replaceState機能を使用して

http://www.exemple.com/page2.html 

:に

http://www.exemple.com/page1.html 

:あなたはアドレスを変更することができますように。すべてのブラウザで広くサポートされているわけではありません(caniuse)。あなたの最善の策のprehapsはhistory.js

5

HTML5を使用してい

あなたはURLを更新するために近代的なブラウザでhistory.pushState()を使用することができます履歴APIを追加します。セキュリティ上の理由から、同じドメインに制限されています。

IEではIE10までIEではサポートされません。 Firefox、Safari、Opera、Chromeはすべてそれを実装しています。

+0

を使用することですので、*それは、これらの新しいページが私のうち一体:( –

+1

ヘクタールのおかげでないmozilla迷惑ですか*だ - 。サービスは利用できません サービスが一時的に利用できない、後でもう一度お試しください –

+1

私は願っています。私は2つの答えを受け入れることができました。私はIE9(内部サイト)についていますので、history.jsを使用します –

関連する問題