web-dev-qa-db-ja.com

ハッシュを変更するときにページをリロードする

ハッシュを変更するときにページをリロードします。

いくつかの「ページ」がある単純な1ページのサイトがあります。これらのページは1つの幅の広いコンテナにあり、1つを選択するとスクロールします。特定のページを直接見つけることができるように、URLにハッシュを追加しました。これは、switchステートメントのハッシュと一致するときにstyle.left属性を設定するだけです。

問題は、URLのハッシュ値を変更するとです。たとえば、Home.html#WebからHome.html#Photosに変更します。これを行うと、ページはリロードされないため、ハッシュのチェックを行うために作成したセットアップ関数は呼び出されず、ページはそのまま残ります。

ページを強制的にリロードする方法についてのアイデアはありますか?またはより良い解決策?

ありがとう、アンディ

17
andyfurniss

ページをリロードしないでください。代わりに、 onhashchange イベントハンドラーを設定し、そこから左の値を調整します。

_window.onhashchange = function() {
    // do stuff
}
_

それ以外の場合、なぜ通常のリンクの代わりにハッシュリンクを使用するのですか?いずれにせよ、本当にリロードしたい場合は、window.location.reload()onhashchangeハンドラー内に置くだけです...

23
bfavaretto