キーポイント
- JavaScriptによる構造的なタグ付けは、ファイルサイズを削減しながら、Webページコンテンツのアクセシビリティと保守性を大幅に向上させることができます。
cite
javaScriptを効果的に使用して、 - 属性を使用して参照リンクをブロック参照に自動的に挿入するなど、HTML要素に機能を動的に追加できます。
- JavaScriptを構造化されたタグと統合することで、ページ更新なしのタブパネルなどの動的なユーザーインターフェイスを作成できます。
- JavaScriptの強化がWebページの基本的な機能を妨げないようにすることが重要です。
数年前、HTMLを書く際の重要なスキルは、2つの主要なブラウザに多かれ少なかれ希望どおりに実行するよう説得するのに十分なテーブルスキルを習得することでした。 Modern Webは非常に異なっており、マークアップの品質は、タイトル、段落、リストなどの構造要素を使用してコンテンツを説明する程度の巧みに依存します。このアプローチの利点は、複数のページにまたがるタグ付きブロックの巨大なブロックで変更するのではなく、コードを維持しやすく、ファイルサイズが小さく、アクセシビリティが向上し、1つのStyleSheetからWebサイトのルックアンドフィールを制御する機能など、何度か説明されています。あまり頻繁に議論されていない利点は、クライアント側のWebサードパーティテクノロジーJavaScriptに基づいて、適切に構造化されたタグが追加のWebサイト強化への扉を開くことです。この記事では、JavaScriptと適切に構造化されたタグが一緒に機能する2つの方法について説明します。最初の例では、Cite属性に接続することにより、ブロック参照を強化する方法を示します。 2番目の例では、ページに表示されるパネルを切り替えるリンクを構築する「ベストプラクティス」スクリプトを示します。
ブロック参照
function extractBlockquoteCitations() { var quotes = document.getElementsByTagName('blockquote'); for (var i = 0; i 最初の例では、目立たないブロック参照要素を見てみましょう。この要素は、インデントの適用と間違っていることがよくありますが、その正しい使用法は、周囲のテキストから視覚的に分離する必要があるマーキング参照です。 Starting Block Reference Tagには、引用ソースページのURLを含むオプションの引用属性を持つことができます。 Citeプロパティの唯一の問題は、ブラウザがそれを完全に無視することです。タグの純粋主義者はそれを高く評価するかもしれませんが、純粋に実用的な観点からは、それを使用することは、正しいマークを使用することの満足度を得る以外には利点がありません。これがJavaScriptが入ってくる場所です。 DOMを使用して、Cite属性を使用して、任意のブロック参照の下部にある引用のソースにリンクを追加できます。これを行う関数コードは次のとおりです。 <p> </p> <p> <code>var quotes = document.getElementsByTagName('blockquote');</code>このコード行は、domメソッド</p><p>を使用して現在のページのすべてのブロック参照要素を見つけ、<code>getElementsByTagName</code>(実際にはhtmlcollection」という名前の配列に割り当てますが、それは配列のように動作するデータ構造です)。 <code>quotes</code> </p> <p><code>for (var i = 0; i </code></p>これで、収集されたブロック参照ノードを通過しています。ループするたびに、<p>メソッドを使用して、要素から引用属性を取得します。 Citeプロパティが設定されている場合は、興味深い部分に進みます。引用の下部に「ソース」リンクを作成します。 <code>getAttribute</code> </p> <p><code>var a = document.createElement('a'); a.setAttribute('href', cite); a.setAttribute('title', cite);</code> </p> DOMを使用して新しいHTML要素をページに動的に追加したい場合、これを行う正しい方法は、<p>メソッドを使用してこれらの要素をプログラム的に作成することです。上記の行は、新しい「A」要素を作成し、HREFとタイトルの属性を割り当てます。どちらも引用のURLとして設定されます。 <code>createElement</code> </p> <p><code>a.appendChild(document.createTextNode('Source'));</code> </p>リンク要素に、ユーザーがクリックしてリンクをアクティブにできるテキストを含めることを望みます。元のテキストノードは、<p>メソッドを使用して作成されます。 domはHTML要素をツリーを構成するものとして扱うため、新しく作成されたリンクにテキストを追加するには、その<code>createTextNode</code>メソッドを呼び出す必要があります。 <code>appendChild</code> </p> <p><code>var p = document.createElement('p'); p.className = 'blockquotesource'; p.appendChild(a);</code> </p> CSSを使用して新しいリンクを柔軟にスタイルできるようにするために、段落要素にラップできます。上記のコードは、そのような要素を作成し、クラスを「BlockQuotesource」に設定してCSSフックを提供し、<p>を使用してリンクを追加します。この時点で、私たちが構築した新しいドキュメントフラグメントは、次のHTMLと同等です。 <code>appendChild</code> <code></code></p><a href="https%EF%BC%9A//www.php.cn/link/a725c77dfdec0a53250d0709ed36e1fe%20=" https:> <p> <code><p> <a href="https://www.php.cn/link/a725c77dfdec0a53250d0709ed36e1fe" title="https://www.php.cn/link/a725c77dfdec0a53250d0709ed36e1fe">Source</a> </p></code> </p>現時点では、メモリで作成したものの、まだドキュメントに添付されていないため、スニペットはまだ見えません。これは関数の最後の行が行うことです:<p> </p> <p><code>quotes[i].appendChild(p);</code> </p> <p>は、現在取り組んでいるブロック参照要素です。 <code>quotes[i]</code>新しい段落をブロック参照に添付して、表示するようにします。 <code>appendChild</code> </p>さらに2つのステップがあります。まず、ページが最初にロードされたときに上記の関数を実行する必要があります。これを達成するには多くの方法があります。最も簡単な方法は、ドキュメントボディ要素のオンロードプロパティに関数に呼び出しを追加することです。 <p>これは正常に機能しますが、より良くすることができます。 JavaScript関数は外部ファイルでホストされるため、外部ファイルが関数を実行することはより意味がありませんか?素朴なアプローチは、次のJavaScriptコードを使用することです。</p> <p> <code>window.onload = extractBlockquoteCitations;</code></p> <p>// </p> <p>関数の名前を提供しますが、最後に()を無視することに注意してください。これにより、関数が実行されます。 JavaScriptは機能的なプログラミングスタイルをサポートしています。つまり、関数はパラメーターとして渡され、データ構造に保存され、他のデータオブジェクトと同様に他の機能から返すことさえできます。このトピックについては、今後の投稿で詳しく説明しますが、その結果、関数を<code>window.onload</code>に割り当てると、ページの読み込み後に実行されます。 </p> ただし、このソリューションには1つの欠点もあります。特定のページでページの読み込みが完了した後に実行された複数のスクリプトを使用する場合、<p>に登録する最後のスクリプトは、実行する唯一のスクリプトになります。本当に必要なのは、すでにそこにあるものを上書きせずに、ウィンドウオブジェクトのオンロードハンドラーに関数を取り付ける方法です。残念ながら、Internet Explorerやその他のブラウザーは、このような動的なイベントの添付ファイルを処理する方法が異なります。以下は関数です:<code>window.onload</code> </p> <pre class="brush:php;toolbar:false">function extractBlockquoteCitations() { var quotes = document.getElementsByTagName('blockquote'); for (var i = 0; i 以下は、ウィンドウオブジェクトのロードイベントにブロッククォート関数を追加するコードです。 <p> </p><p> <code>addEvent(window, 'load', extractBlockquoteCitations);</code>最後のステップは、CSSで引用をスタイリングすることです。これは、ブロック参照を処理する比較的単純なCSSコードスニペットです。 </p> <p>完成品はここで見ることができます。 </p> <pre class="brush:php;toolbar:false">function addEvent(obj, evType, fn){ if (obj.addEventListener){ obj.addEventListener(evType, fn, false); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else { return false; } }パネルスイッチ
さて、より高度な動的効果、つまりパネルスイッチャーを考えてみましょう。ここでの目標は、ページに複数のパネルを配置し(Divタグを使用)、一度に1つのパネルのみを表示することです。常に表示されるリンクのセットを使用して、現在表示されているパネルを選択できます。これは、タブを選択するたびにページを更新せずに、タブ付きインターフェイスを構築して、関連するさまざまな画面を閲覧するのに役立ちます。
JavaScriptを使用してページを強化するときはいつでも、JavaScriptが無効になっていても、ページがまだ利用可能でなければならないという良いルールを覚えておく必要があります。この場合、これは、JavaScriptが有効になったときに理想的なソリューションが宣伝されているように機能する必要があることを意味しますが、非JavaScript環境では、すべてのパネルをページに表示する必要があり、各リンクは関連パネルに直接リンクし、URLスニペットを使用します。
それから、これは機能する最も簡単なマークです:
`
パネル1
|驚くべきことに、上記は、目的の効果を作成するためにいくつかのJavaScriptをフックするために必要なほぼすべてのマークアップです。上記のコードを続けることができますが、リンクにクラスを追加して、特別な運用を実行したいことを明確にしましょう。
<a href="https://www.php.cn/link/65dfa16ba6de9bdb34ea435c9fe2a425" class="toggle">Panel 1</a> | <a href="https://www.php.cn/link/379d08c7a38df48c777c07ea990a3bcf" class="toggle">Panel 2</a>
以下は、JavaScriptの仕組みです。ページが読み込まれると、スクリプトは、クラスに「トグル」を含むリンクをページ上のすべてのリンクをスキャンします。見つかったリンクの場合、HREF属性がチェックされ、指定された要素が配置され、ターゲット要素アレイに追加されます。最初の要素を除く他のすべての要素は「閉じている」ため、ページがロードされると、最初のパネルのみが表示されたままになります。リンク自体は、JavaScriptイベントハンドラーを添付して、それらがアクティブ化されると、対応するパネルを表示できるようにします。
完全なスクリプトはここで見ることができます。以下は、コードの仕組みについての段階的な説明です。
var et_toggleElements = [];
/* Initialisation */ function et_init() { var i, link, id, target, first; first = true; for (i = 0; (link = document.links[i]); i ) { ... }
var
if (/btoggleb/.exec(link.className)) { ... }
この条件は、現在リンクされているクラスに「トグル」が含まれているかどうかをチェックします。クラスのプロパティには、スペースで区切られた複数のクラスを含めることができるため、
は、正規表現です。 link.className == 'toggle'
/btoggleb/
b
リンクされたクラスリストにトグルが含まれている場合、リンクのターゲットがURLスニペットであると仮定します。 id = link.href.split('#')[1];
#タグでリンクhrefを分割する - 興味のある部分は#の後であることがわかっているため、
を使用して結果配列を直接インデックスしてターゲットIDを抽出します。
link.href.split('#')
[1]
ここで、リンクが要素が存在することを示すという別の仮定を立てます。 getElementById()
メソッドを使用して要素を取得し、アレイの現在の長さに等しい配列インデックスに割り当てて、要素の配列に追加します。これは、配列が0からインデックス作成を開始するため、配列の長さはアレイの次の空のスロットのインデックスでもあります。
if (first) { first = false; } else { target.style.display = 'none'; }
これは、私たちが以前に定義した最初のロゴが登場する場所です。 Webサイトの最初のパネルが表示されたままになりますが、他のパネルはCSSの「表示:なし」に相当するJavaScriptを使用して隠されています。このフラグを使用すると、これを行うことができます。
link.onclick = et_toggle;
最後に、et_toggle
関数をリンクされたonclick
イベントに割り当て、リンクがアクティブになるたびに関数が呼び出されます。次のステップは、関数を定義することです。
function extractBlockquoteCitations() { var quotes = document.getElementsByTagName('blockquote'); for (var i = 0; i <p>繰り返しますが、<code>split</code>メソッドを使用して、リンクからIDを抽出します。 </p> <p>表示するパネルがわかります。要素配列を繰り返して、IDが目的のパネルのIDと一致する要素を除く他のすべての要素を閉じることができます。 </p> <p> falseを返すことにより、アクティブ化されたときにリンクが実際に追跡されるのを防ぎます。 </p> <p>最後のステップは、前述の<code>addEvent</code>関数を使用して、ウィンドウの荷重イベントに<code>et_init</code>関数を登録することです。 </p> <p> <code>addEvent(window, 'load', et_init);</code></p> <p>ここで実行中の完了コードを表示できます。 </p> <h5 id="結論">結論</h5> この記事では、有用な効果のためにJavaScriptとW3C DOMで適切に構造化されたマーカーを使用できる2つの方法が見られます。この投稿が、JavaScriptとSmart Taggingを使用する新しい方法を見つけるように促すことを願っています。 <p> </p>さらに読み取り<h5> </h5>構造化されたタグに基づいたJavaScript効果の他の多くの優れた例があります。ここに注意を払う価値のある例がいくつかあります:<p> </p>
- Aaron Boodman's Labels.js
- スチュアートラングリッジによる素敵なタイトル
- スチュアートラングリッジのaqlists
- Stuart Langridgeのソートテーブル
- ピーター・ポール・コッホの目次
JavaScriptの構造的なタグは何ですか?
JavaScriptの構造化されたタグは、Webドキュメントのコンテンツと構造を説明するためにHTML要素を使用することです。これらの要素には、タイトル、段落、リストなどが含まれます。 JavaScriptは、これらの要素を操作して、動的でインタラクティブなWebページを作成できます。たとえば、JavaScriptは、HTML要素のコンテンツを変更し、HTML要素のスタイル(CSS)を変更し、新しいHTML要素を追加することもできます。
JavaScriptはHTML要素とどのように相互作用しますか?
JavaScriptは、ドキュメントオブジェクトモデル(DOM)を介してHTML要素と相互作用します。 Domは、JavaScriptが動作できるWebページの構造を表します。たとえば、javaScriptはdocument.createTextNode()
メソッドを使用して新しいテキストノードを作成し、既存のHTML要素に追加できます。
JavaScriptのテキストノードとは何ですか?
JavaScriptのテキストノードは、要素または属性のテキストコンテンツを表すノードタイプです。 document.createTextNode()
メソッドを使用して作成できます。このメソッドは、既存のHTML要素に添付できる新しいテキストノードを作成し、Webページにテキストを動的に追加できるようにします。
JavaScriptをHTMLに追加する方法は?
javaScriptはいくつかの方法でHTMLに追加できます。 リアルなヌード写真を作成する AI 搭載アプリ 写真から衣服を削除するオンライン AI ツール。 脱衣画像を無料で AI衣類リムーバー 完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。 Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。 ビジュアル Web 開発ツール 神レベルのコード編集ソフト(SublimeText3) 最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール 便利なJavaScript開発ツールホットAIツール
Undresser.AI Undress
AI Clothes Remover
Undress AI Tool
Clothoff.io
Video Face Swap
人気の記事
ホットツール
MantisBT
Dreamweaver Mac版
SublimeText3 Mac版
PhpStorm Mac バージョン
WebStorm Mac版
ホットトピック