11

window.location.hash

JavaScript アクションのリンクを使用する場合、通常は次のようにします。

<a href="#">Link Text</a>

そうすれば、ページが読み込まれる前に誰かがリンクをクリックしても、ひどいことは何も起こりません。

Html ベース タグ

私の現在のプロジェクトでは、これと同じ構成を使用していますが、基本タグを使用しています。

<html>
<head>
    <base href="http://example.com/" />
</head>
<body>
    <a href="#">Link Text</a>
</body>
</html>

ただし、ページの URL が次の場合:

http://example.com/dir/page

リンクをクリックすると、

http://example.com/#

それよりも

http://example.com/dir/page#

どうすればこれを修正できますか?

4

7 に答える 7

11

baseタグを削除するか、href属性を完全修飾に変更してください。観察しているのは、要素と混合baseしたときの意図した動作です。a

于 2009-03-18T16:49:50.230 に答える
3

a タグを使用する傾向がある場合、別の解決策は # を href ターゲットとして使用しないことです (# を指定しないと、望ましくないと思われるページの上部にジャンプします)。あなたができることは次のとおりです。

<a href="javascript:">Some Link that Goes nowhere</a>

ただし、タグである必要があることをしていない限り、スパンが最善の策です。

CSS:

.generic_link {
  text-decoration:underline;
}
.generic_link:hover {
  text-decoration:none;
}

HTML:

<span class="generic_link">Something that really isn't a link</span>
于 2009-03-18T17:38:56.120 に答える
1

JavaScript を使用しないユーザーに適した URL がない場合は、<a>. <a>タグは他のページへのリンク用です。

表示可能な HTML 要素には onclick が含まれている可能性があり、説明したこの問題は発生しません。

于 2009-03-18T16:51:33.457 に答える
0

私は過去に同じ問題を抱えていました。
現在のページにリンクするために、空にしたいリンクがありました。ベースの html 要素
なければ、これは.ahref="#"

basehtml要素 を使用しない私の例、

<li>
    <a href="#"><div>The text of my Link</div></a>
</li>

私が見つけた解決策と同じ例、

<li style="cursor: pointer !important;">
    <a href="#" style="pointer-events: none;"><div>The text of my Link</div></a>
</li>

このソリューションでは、css のみを使用してリンクを無効にします。

最初の css ルールcursor: pointer !important;を使用して、このリンクに正しい (私の場合) ポインター アイコンがあることを確認します。
2 番目のルールpointer-events: none;では、このリンクをクリックできないようにします。
このルールの詳細については、このリンクをたどってください。

于 2016-01-24T11:44:45.807 に答える
0

イベントに戻っfalseonclickリンクを無効にします。

<a href="#" onclick="doSomething(); return false">Link Text</a>

(これは、インラインで行う方法の単なる例です。ただし、インライン宣言を避け、プログレッシブ エンハンスメントの手法を使用するようにしてください。)

于 2009-03-18T16:50:39.073 に答える