0

私はここのようなajaxナビゲーションを持っています。

メニューをクリックするとwindow.location.hashが次のように追加されます#about

ハッシュ(#)を削除して、リンクを自然に簡単にコピーして共有できるようにします。

ページを更新するクロスブラウザ(IE7 +、FF、Opera、Safari)を使用せずに、2012年4月にこれを行うにはどうすればよいですか?

インスピレーションを得るために:これは実際にすでにこれを行っている人です。「ポートフォリオ」または「機能」をクリックして、ブラウザでURLを確認してください。

ヒントをありがとう

4

2 に答える 2

1

利用可能な場合は、履歴APIを使用します。(それをサポートするブラウザで)ハッシュを設定する代わりに、次の手順を実行します。

history.pushState({ /* Some state object */ }, "A title representing this state");

次に、popstateイベントリスナーで状態の変化を処理します。このようにすることは、URLが変更されないことを意味しますが、履歴は引き続き完全に機能します。

于 2012-04-06T23:31:29.710 に答える
1

あなたが探しているものは呼ばれています:http pushState//badassjs.com/post/840846392/location-hash-is-dead-long-live-html5-pushstate

HTML5を使用すると、ブラウザの閲覧履歴にアクセスでき、その場で操作できます。

window.history.pushState(data, "Title", "/new-url");

これにより、現在のページが操作され、「/ new-url」がURLとして表示され、「Title」がページのタイトルとして表示されます。バックボーン.jsなど、これを処理するjavascriptライブラリがいくつかあります。

URLを共有する場合は、適切なコンテンツを引き続きフィードするようにアプリに指示する必要があります(または、コンテンツをフィードする「ベース」JavaScriptアプリをフィードするだけです)。

うまくいけば、これはあなたが正しい方向に向けられるようになるでしょう。

于 2012-04-06T23:34:40.643 に答える