2

メニューバーがあります。メニューバーの各項目はハイパーリンクです。

  <a href="#" title="item1">

メニューの選択に基づいて、いくつかのdivを表示し、残りのdivを非表示にしています。すべてが正常に動作します。メニュー項目をクリックすると、結果は同じページに表示されますが、ブラウザのアドレスバーの#記号が表示localhost/abc#されているため、ブラウザの戻る(<-)ボタンがアクティブになります。ブラウザの戻るボタンをクリックできるユーザー。

#アドレスバーにを表示しないようにする方法はありますか?

イベント処理関数のステートメントを使用しreturn false;て、hrefリンクを無効にしています。

4

2 に答える 2

6

アドレスバーに#が表示されないようにする方法はありますか?

はい、#変更することで回避できます

<a href="#" title="item1">

<a href="javascript:void(0)" title="item1">

なぜ#が表示されるのですか?(MDNから)

href- これは、ハイパーテキストソースリンクを定義するアンカーに必要な単一の属性です。これは、URLまたはURLフラグメントのいずれかのリンクターゲットを示します。URLフラグメントは、ハッシュマーク(#)が前に付いた名前であり、現在のドキュメント内の内部ターゲットの場所(ID)を指定します。URLは、Web(HTTP)ベースのドキュメントに制限されていません。URLは、ブラウザでサポートされている任意のプロトコルを使用できます。たとえば、file、ftp、およびmailtoは、ほとんどのユーザーエージェントで機能します。

于 2012-10-25T20:58:43.500 に答える
1

あなたが言うようにイベントハンドラーを終了するreturn falseと、それはあなたのアドレスバーに表示されません。基本的に、呼び出されているイベントハンドラーとreturn false(返されないため)の間に、正常に機能しないことがあります。JavaScriptにエラーがないことを確認してください。

于 2012-10-25T21:00:52.500 に答える