javascript:void(0) は注意して使用してください。なぜこのように書くのが良くないのでしょうか?
ステートメントのバグを修正します。 IE6の場合、クリック後にGIFが一時停止するバグは「JavaScript:疑似プロトコルでセミコロンが追加されない」場合にのみ発生します
<a href="javascript:void(0)">
なぜこのように書くのが良くないのでしょうか
別の視点を提供しましょう。
タグに href 属性を追加することは、次のことを意味します:
:link セレクターはそれを選択できます
この a タグはフォーカスを取得できます (タブ ボタンを押すとアクセスできます)
ブラウジング中ブラウザのデフォルトのスタイル シートでは、href 属性を持つ タグには、cursor:pointer の効果があります (特に、IE の以前のバージョンでは)。
は onclick イベント の タグにバインドされており、特にその機能が ajax リクエストである場合は、基本的にこのタグのデフォルトの動作を使用できず、実際のページに接続できません。たとえば、この要素のカーソルやその他のスタイルも CSS で指定されます。現時点では、href 属性を以下に追加する必要があります:
がキーボード イベントに応答してフォーカスを取得できるようにする (スクリーン リーダーが背後のコンテンツを読み取ってアクセシビリティを向上できるようにする)
ネットワーク上で正常に機能を低下させる接続が非常に貧弱です。CSS に読み込まれていない場合、 は手の形と通常のリンク スタイルのままです。
タグに href 属性を与え、それを実際のページに接続しない場合の解決策は次のとおりです。
彼らの経験は少し異なります。
1. このリンクをクリックすると、ページが先頭に移動し、window.location.href の末尾に # が追加されます (window.location.href の末尾に # がない場合)。 onclick イベントは js でキャプチャされ、デフォルトのイベントはブロックされます。
2 には予備的なセマンティクスがあります。ただし、ページ内に nogo という ID を持つ要素がある場合、リンクをクリックすると、アンカーポイント メカニズムが機能し、ページが要素の上端に揃えられます。詳細については、Zhang Xinxu の「URL アンカー HTML ポジショニング技術のメカニズム、アプリケーション、および問題点」を参照してください。
3 は Chrome でデフォルトでページ ヘッダーにジャンプしなくなり、4 は IE11 でページ ヘッダーにジャンプしなくなりました。以下のテストを参照してください。
5~8も同様の機能ですが、JavaScriptの擬似プロトコルを使用しています。 IE6 では、セミコロンのないオプション 6 と 8 がクリックされると、IE6 はページ内の GIF を一時停止し、onbeforeunload イベントをトリガーします (詳細については、IE6 がこのページにリダイレクトがあることを認識し、すべてのリクエストを中止します)。ここを参照してください)。したがって、この後に の src を置き換えると、IE6 は新しいリクエストをまったく完了しません。
私はオプション 4 を好みます。
<a href="javascript:void(0)"> のような LZ のセマンティックな使用については、すでに十分な詳細な回答がここにあります。この状況でもアクセス可能なアプリケーションをサポートできることを付け加えておきます。メソッドについては、「WAI-ARIA のアクセス可能な Web アプリケーションのプロパティ」を参照してください。
更新、次のテストを行いました:
<p> <a href="#">#</a> </p> <p> <a href="##">##</a> </p> <p> <a href="###">###</a> </p> <p> <a href="####">####</a> </p> <p> <a href="#####">#####</a> </p> <script type="text/javascript"> var n = 0 ; window.onhashchange = function(){ alert(++n) ; } </script>
IE11 では、###、####、##### をクリックしても、ページが先頭にジャンプしなくなりました
Chrome では、## をクリックして、 ###、####、##### では、ページが先頭にジャンプしなくなります。
ただし、IE11 と Chrome では、すべての をクリックすると、アドレス バーが変更され、hashchange イベントがトリガーされます。
つまり、私が前に述べた「###によってアドレスバーは変化しない」ということは間違いです。
他のブラウザを大規模にテストしたわけではありません。これは暫定的な推測です: ### の重要性は、文字数が最も少なく、ページの先頭のアンカー ポイントにジャンプしないことです。すべてのブラウザ。
このように書いても問題はありません。これは、この部分がリンクのように見え、マウスには手の形が必要で、クリックに応答する必要がありますが、実際のアクションは存在しないことを意味します。 href="#" を置き換えるために使用されます。この書き方は本質的に HTML と js を混ぜたものではありません。
void(0) は注意して使用してください
# を使用するか void(0) を使用するかにかかわらず、共通の欠点があります。これを行うとこの動作が発生し、これを実現するには js を有効にする必要があります。笑わないでください。ほとんどの人は js を読み込みますが、接続障害などの事故の可能性を排除できません。あるいは、js を使用しない狂った人も実際に少数います。さらに、js は検索エンジンで追跡できないため、これは考慮する必要がある問題です。
この意味で、# はさらに悪いです。単一の # のセマンティクスが実際には暗黙的に Web ページ自体を指しているため、「新しいタブで開く」を使用すると混乱が生じます。そして、この問題 void(0) はそうではありません。
【関連推奨事項】
1. 特別な推奨事項: 「php Programmer Toolbox」V0.1バージョンのダウンロード
2. IE6でのjavascript:void(0)の無効なメソッドの解決策
3. JavaScriptにおける演算子void(0)の定義と詳細説明
4. href=javascript:void(0) と href=#
の違いをまとめます以上がjavascript:void(0) は注意して使用してください。なぜこのように書くのが良くないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript は Web 開発で広く使用されているプログラミング言語であり、WebSocket はリアルタイム通信に使用されるネットワーク プロトコルです。 2 つの強力な機能を組み合わせることで、効率的なリアルタイム画像処理システムを構築できます。この記事では、JavaScript と WebSocket を使用してこのシステムを実装する方法と、具体的なコード例を紹介します。まず、リアルタイム画像処理システムの要件と目標を明確にする必要があります。リアルタイムの画像データを収集できるカメラ デバイスがあるとします。
