1. ホーム
  2. javascript

[解決済み] What is the difference between the different methods of putting JavaScript code in an <a>?

2023-04-30 10:04:15

Question

I have seen the following methods of putting JavaScript code in an <a> tag:

function DoSomething() { ... return false; }

  1. <a href="javascript:;" onClick="return DoSomething();">link</a>
  2. <a href="javascript:DoSomething();">link</a>
  3. <a href="javascript:void(0);" onClick="return DoSomething();">link</a>
  4. <a href="#" onClick="return DoSomething();">link</a>

I understand the idea of trying to put a valid URL instead of just JavaScript code, just in case the user doesn't have JavaScript enabled. But for the purpose of this discussion, I need to assume JavaScript is enabled (they can't login without it).

I personally like option 2 as it allows you to see what's going to be run–especially useful when debuging where there are parameters being passed to the function. 私はこれをかなり使用し、ブラウザーの問題を発見したことはありません。

私は、ユーザーがフォローするための本当のリンクを与えるので、人々が 4 を推奨していることを読みました。それはまったくどこにも行きません。

ユーザーがJavaScriptを有効にしていることが分かっている場合、サポートされていないもの、または本当に悪いものはありますか?

関連する質問 JavaScriptのリンクのためのHref。"#" または "javascript:void(0)"? .

どのように解決するのですか?

私はかなり楽しんで Matt KruseのJavascriptベストプラクティスの記事 . この中で、彼は href セクションを使用して JavaScript コードを実行するのは悪い考えだと述べています。 ユーザーが JavaScript を有効にする必要があると述べているにもかかわらず、シンプルな HTML ページを用意し、すべての JavaScript リンクがその href セクションを指し示すことができるシンプルな HTML ページを用意することができます。 私は、このフォールバック機構を許可することを強くお勧めします。 このようなものは、ベスト プラクティスに準拠し、目標を達成することができます。

<a href="javascript_required.html" onclick="doSomething(); return false;">go</a>