5

サイト内の他のページへの明示的な href を含むリンク/<a> タグを使用する場合 (つまりhref="/blah/blah/blah.html) と、hrefs/divs/etc を使用する場合のベスト プラクティスは何ですか。明示的な href がなく、onclick が main.js ファイルなどの JavaScript を使用してドキュメント対応ハンドラー内に設定されているもの。

私は Web 開発の専門家ではありませんが、jQuery などの学習を楽しんでおり、Unobtrusive JavaScript の概念に加入していることに気づきました。上記の両方のオプションは、その考え方の「HTML 内に JavaScript を持たない」という部分を壊すものではありませんが、「動作からの構造と表示の分離」に行き詰まっていると思います。そこに <a> タグを入れて明示的に href を設定する方が自然であることは確かですが、これは実際には動作であり、JS 内で設定する必要があると考えています。

それは遠くに行くのですか、それとも私が慣れていないだけですか? 私の反対側は、それを JS に入れることの利点を理解しています。b/c 今では、HTML 内で何も変更することなく、そのリンクの動作を完全に制御することができます。私はことわざの垣根の上にいると言うでしょう。私を落ち着かせるのを手伝ってください。=)

(注: このサイトは JavaScript を多用しているため、JS をオフにして機能を提供するという概念は、JavaScript がないとほとんどのサイトが機能しないため、実際には問題になりません。)

4

5 に答える 5

10

それは多くの理由で本当に行き過ぎです。

  1. これは主にトリッキーなコードであり、避ける必要があります。
  2. それはあなたのウェブサイトに具体的な利益を提供しません。
  3. no-jsの雄弁なフォールバックはありません。
  4. SEOに悪影響を及ぼします。具体的には、ボットはスクリプトを実行しないため、リンクが表示され、最終的にサイトのインデックスが適切に作成されません。
  5. おそらく最も重要なことは、この効果は、スクリーンリーダーまたはJSが無効になっているユーザーのUXに深刻な影響を与える可能性があることです(たとえば、多くの携帯電話のブラウザーはJSを無効にします)

結局、型を破る明示的な必要性(レガシーサポートなど)がない限り、目立たない設計に従うように最善を尽くす必要があります。これは、JavaScriptを使用して静的構造を作成しているという意味で非常に目障りです。 HTMLを使用する方がはるかに優れています。

于 2010-10-28T04:11:43.963 に答える
6

通常のユーザーは違いを本当に知りません。ただし、検索エンジンと SEO の慣行では、スパイダーに他のページをフォローさせたい場合は、href="" を使用して他のページにリンクする必要があります。訪問者がスクリーン リーダーを使用している場合や、特別なアクセシビリティが必要な場合も同様です。それらの多くは、DOM ではなくソース コードを読み取ります。

一般に、ページやアクションにリンクする場合は、href を使用します。

追加の機能を追加する必要がある場合、または実際には別のページやアクションに移動しない場合は、javascript onclick スタイルを使用するか、jQuery を使用してイベントを追加します。

于 2010-10-28T04:07:36.650 に答える
4

リンクは動作ではありません。リンクは、あるドキュメントと別のドキュメントの間のリンクを表します。Web ブラウザーは、リンクをクリックしたときにリンク先のページに移動する動作を提供しますが、これはブラウザーの動作であり、各ブラウザーにはこれを行う最善の方法に関する独自の規則があります。タブ、中クリックで新しいタブが開き、M4 でリンクが新しいページで開く場合があります。この生の情報を動作に置き換えると、この種の選択肢を提供するブラウザの機能が損なわれます。

また、影響を受ける他のクライアントもあります。スパイダーやその他のボットは、アンカー タグ内の情報についてページを読み取り、ページが何にリンクされているかを判断します。代わりに「動作」を使用すると、この意味のある情報がページから取り除かれます。

于 2010-10-28T18:53:06.073 に答える
1

jquery ヒストリ プラグインは非常に優れています。href='#/url" を設定すると、実際の URL や実際の戻るボタンを設定できますが、ハンドラは history.url にバインドされたイベントをリッスンするだけです。

http://tkyk.github.com/jquery-history-plugin/

タグを使用しないと、スクリーン リーダーを使用する視覚障害のあるユーザーにとって、おそらく何らかのユーザビリティの問題が発生する可能性があります。

于 2010-10-28T18:22:01.783 に答える
1

他のポスターに同意します。href が静的である場合、つまり、そのページでのやり取りによってその値が変更されない場合は、それをページの「構造とプレゼンテーション」の一部と見なすことができます。それが動的であり、ページ上の何らかのアクションがその値を変更するという異常なケースでは、それが「動作」になるときです。その場合にのみ、JS に処理させることが適切です。

一方、既存のコードに既に 9 つの動的に設定された href があり、静的な href を 1 つ追加するだけの場合、読みやすさについてはおそらく以前の開発者の先導に従うでしょう。

于 2010-10-28T04:28:27.663 に答える