1

基本的に、私はページにいくつかのリンクを持っています - index.html、それらは次のようになります:

  <li><a href="index.html#0">test 0</a></li>
  <li><a href="index.html#1">test 1</a></li>
  <li><a href="index.html#2">test 2</a></li>
  <li><a href="index.html#3">test 3</a></li>

フラグメント ID を含む警告ボックスを開く関数を window.onload イベントに追加したので、最初のリンクをクリックすると、「0」などの警告ボックスが表示されます。

ただし、URL バーから index.html にアクセスして Enter キーを押した場合にのみ、アラート ボックスが表示されます。リンクをクリックしても、警告ボックスは表示されませんでした。window.onload イベントが呼び出されないためだと思います...この問題を解決する方法を知っている人はいますか?

4

2 に答える 2

3

window.onhashchangeアンカー ナビゲーションでトリガーされるイベント 必要 ですdocument.links。 link.hash のみが location.href と異なります)

于 2011-02-21T05:15:41.347 に答える
2

フラグメントの変更は、特定のページ内のセクションからセクションへ移動することを目的としています。リンクの 1 つをクリックすると、フラグメントが変更されるだけで、ページ自体はそのまま残ります。ページは変更されないため、ページ読み込みイベントは発生せず、onloadハンドラーは呼び出されません。

onhashchangeハンドラーの代わりにハンドラーが必要ですonload。ただし、すべてのブラウザーがサポートしているわけではないonhashchangeので、一部のブラウザーでは手巻きバージョンをいじる必要があることに注意してください。この種のことをたくさん行っている場合は、Sammyまたは同様のライブラリを調べて、詳細を処理することをお勧めします。

于 2011-02-21T03:27:08.497 に答える