1

みなさん、このコードは、URL のハッシュの後に続くものを読み取り、その値に応じて特定の div を表示するためのものです。すでにサイトにいるときにハッシュを変更しようとする場合を除いて(または同じ効果を持つ戻るボタンを押した場合:ハッシュを変更しますが、divは変更されません)。このサイトは、div (ページのメイン コンテンツ) が変更されるたびにリロードされないように作られているため、戻るボタンを押したり、ハッシュの後に別の値を入力したりしても、div が変更されない理由を推測しています。ページは既に読み込まれており、JavaScript コードはページの読み込み時に 1 回だけ呼び出されます。URLが変更されるたびに呼び出される方法が必要です。コードは次のとおりです。

function hash() { var hash = window.location.hash.replace('#',''); InsertContent(hash); }

4

3 に答える 3

0

残念ながらこれはバグではなく、機能です。たとえば、Opera はページの正確な状態をメモリに格納します。したがって、戻るボタンを押すと、その状態が正確に復元されます。ページを変更したことがないようです。

InsertContent()ただし、ハッシュを変更した直後に呼び出すことで、ハッシュの変更は機能するはずです。それはうまくいきませんか?コードを見せていただけますか?

于 2010-11-18T23:35:37.950 に答える
0

window.location.hash をポーリングして、変更されるかどうかを確認する必要があります。一部のブラウザはonhashchangeイベントをサポートしています。

別の議論:オン - window.location.hash - 変更しますか?

于 2010-11-18T23:40:05.840 に答える
0

jQuery には、この問題に対処するための「アドレス」というプラグインがあります。

于 2010-11-19T01:47:15.157 に答える