国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
數(shù)年前、HTMLを書く際の重要なスキルは、2つの主要なブラウザに多かれ少なかれ希望どおりに実行するよう説得するのに十分なテーブルスキルを習得することでした。 Modern Webは非常に異なっており、マークアップの品質は、タイトル、段落、リストなどの構造要素を使用してコンテンツを説明する程度の巧みに依存します。このアプローチの利點は、複數(shù)のページにまたがるタグ付きブロックの巨大なブロックで変更するのではなく、コードを維持しやすく、ファイルサイズが小さく、アクセシビリティが向上し、1つのStyleSheetからWebサイトのルックアンドフィールを制御する機能など、何度か説明されています。あまり頻繁に議論されていない利點は、クライアント側のWebサードパーティテクノロジーJavaScriptに基づいて、適切に構造化されたタグが追加のWebサイト強化への扉を開くことです。この記事では、JavaScriptと適切に構造化されたタグが一緒に機能する2つの方法について説明します。最初の例では、Cite屬性に接続することにより、ブロック參照を強化する方法を示します。 2番目の例では、ページに表示されるパネルを切り替えるリンクを構築する「ベストプラクティス」スクリプトを示します。
結論
JavaScriptはHTML要素とどのように相互作用しますか?
JavaScriptのテキストノードとは何ですか?
JavaScriptをHTMLに追加する方法は?
ドキュメントオブジェクトモデル(DOM)とは何ですか?
JavaScriptを使用してHTML要素のコンテンツを変更する方法は?
JavaScriptを使用してHTML要素のスタイルを変更するにはどうすればよいですか?
JavaScriptを使用して新しいHTML要素を追加する方法は?
JavaScriptのイベントプロパティは何ですか?
ホームページ ウェブフロントエンド jsチュートリアル JavaScriptによる構造マークアップの強化

JavaScriptによる構造マークアップの強化

Mar 10, 2025 am 12:18 AM

Enhancing Structural Markup with JavaScript

キーポイント

  • JavaScriptによる構造的なタグ付けは、ファイルサイズを削減しながら、Webページコンテンツのアクセシビリティと保守性を大幅に向上させることができます。 cite
  • javaScriptを効果的に使用して、
  • 屬性を使用して參照リンクをブロック參照に自動的に挿入するなど、HTML要素に機能を動的に追加できます。
  • JavaScriptを構造化されたタグと統(tǒng)合することで、ページ更新なしのタブパネルなどの動的なユーザーインターフェイスを作成できます。
  • JavaScriptの強化がWebページの基本的な機能を妨げないようにすることが重要です。
イベント処理やDOM操作などの高度なJavaScriptテクノロジーは、既存のスクリプトやブラウザのデフォルトを妨害することなく使用でき、互換性を確保し、ユーザーエクスペリエンスを向上させることができます。

數(shù)年前、HTMLを書く際の重要なスキルは、2つの主要なブラウザに多かれ少なかれ希望どおりに実行するよう説得するのに十分なテーブルスキルを習得することでした。 Modern Webは非常に異なっており、マークアップの品質は、タイトル、段落、リストなどの構造要素を使用してコンテンツを説明する程度の巧みに依存します。このアプローチの利點は、複數(shù)のページにまたがるタグ付きブロックの巨大なブロックで変更するのではなく、コードを維持しやすく、ファイルサイズが小さく、アクセシビリティが向上し、1つのStyleSheetからWebサイトのルックアンドフィールを制御する機能など、何度か説明されています。あまり頻繁に議論されていない利點は、クライアント側のWebサードパーティテクノロジーJavaScriptに基づいて、適切に構造化されたタグが追加のWebサイト強化への扉を開くことです。この記事では、JavaScriptと適切に構造化されたタグが一緒に機能する2つの方法について説明します。最初の例では、Cite屬性に接続することにより、ブロック參照を強化する方法を示します。 2番目の例では、ページに表示されるパネルを切り替えるリンクを構築する「ベストプラクティス」スクリプトを示します。

ブロック參照

function extractBlockquoteCitations() {
    var quotes = document.getElementsByTagName('blockquote');
    for (var i = 0; i < quotes.length; i++) {
        var cite = quotes[i].getAttribute('cite');
        if (cite) {
            var a = document.createElement('a');
            a.setAttribute('href', cite);
            a.setAttribute('title', cite);
            a.appendChild(document.createTextNode('Source'));
            var p = document.createElement('p');
            p.className = 'blockquotesource';
            p.appendChild(a);
            quotes[i].appendChild(p);
        }
    }
}
最初の例では、目立たないブロック參照要素を見てみましょう。この要素は、インデントの適用と間違っていることがよくありますが、その正しい使用法は、周囲のテキストから視覚的に分離する必要があるマーキング參照です。 Starting Block Reference Tagには、引用ソースページのURLを含むオプションの引用屬性を持つことができます。 Citeプロパティの唯一の問題は、ブラウザがそれを完全に無視することです。タグの純粋主義者はそれを高く評価するかもしれませんが、純粋に実用的な観點からは、それを使用することは、正しいマークを使用することの満足度を得る以外には利點がありません。これがJavaScriptが入ってくる場所です。 DOMを使用して、Cite屬性を使用して、任意のブロック參照の下部にある引用のソースにリンクを追加できます。これを行う関數(shù)コードは次のとおりです。

var quotes = document.getElementsByTagName('blockquote');このコード行は、domメソッド

を使用して現(xiàn)在のページのすべてのブロック參照要素を見つけ、getElementsByTagName(実際にはhtmlcollection」という名前の配列に割り當てますが、それは配列のように動作するデータ構造です)。 quotes

for (var i = 0; i < quotes.length; i ) { ... }

これで、収集されたブロック參照ノードを通過しています。ループするたびに、

メソッドを使用して、要素から引用屬性を取得します。 Citeプロパティが設定されている場合は、興味深い部分に進みます。引用の下部に「ソース」リンクを作成します。 getAttribute

var a = document.createElement('a'); a.setAttribute('href', cite); a.setAttribute('title', cite);

DOMを使用して新しいHTML要素をページに動的に追加したい場合、これを行う正しい方法は、

メソッドを使用してこれらの要素をプログラム的に作成することです。上記の行は、新しい「A」要素を作成し、HREFとタイトルの屬性を割り當てます。どちらも引用のURLとして設定されます。 createElement

a.appendChild(document.createTextNode('Source'));

リンク要素に、ユーザーがクリックしてリンクをアクティブにできるテキストを含めることを望みます。元のテキストノードは、

メソッドを使用して作成されます。 domはHTML要素をツリーを構成するものとして扱うため、新しく作成されたリンクにテキストを追加するには、そのcreateTextNodeメソッドを呼び出す必要があります。 appendChild

var p = document.createElement('p'); p.className = 'blockquotesource'; p.appendChild(a);

CSSを使用して新しいリンクを柔軟にスタイルできるようにするために、段落要素にラップできます。上記のコードは、そのような要素を作成し、クラスを「BlockQuotesource」に設定してCSSフックを提供し、

を使用してリンクを追加します。この時點で、私たちが構築した新しいドキュメントフラグメントは、次のHTMLと同等です。 appendChild

<p> <a href="http://www.miracleart.cn/link/a725c77dfdec0a53250d0709ed36e1fe" title="http://www.miracleart.cn/link/a725c77dfdec0a53250d0709ed36e1fe">Source</a> </p>

現(xiàn)時點では、メモリで作成したものの、まだドキュメントに添付されていないため、スニペットはまだ見えません。これは関數(shù)の最後の行が行うことです:

quotes[i].appendChild(p);

は、現(xiàn)在取り組んでいるブロック參照要素です。 quotes[i]新しい段落をブロック參照に添付して、表示するようにします。 appendChild

さらに2つのステップがあります。まず、ページが最初にロードされたときに上記の関數(shù)を実行する必要があります。これを達成するには多くの方法があります。最も簡単な方法は、ドキュメントボディ要素のオンロードプロパティに関數(shù)に呼び出しを追加することです。

これは正常に機能しますが、より良くすることができます。 JavaScript関數(shù)は外部ファイルでホストされるため、外部ファイルが関數(shù)を実行することはより意味がありませんか?素樸なアプローチは、次のJavaScriptコードを使用することです。

window.onload = extractBlockquoteCitations;

//

関數(shù)の名前を提供しますが、最後に()を無視することに注意してください。これにより、関數(shù)が実行されます。 JavaScriptは機能的なプログラミングスタイルをサポートしています。つまり、関數(shù)はパラメーターとして渡され、データ構造に保存され、他のデータオブジェクトと同様に他の機能から返すことさえできます。このトピックについては、今後の投稿で詳しく説明しますが、その結果、関數(shù)をwindow.onloadに割り當てると、ページの読み込み後に実行されます。

ただし、このソリューションには1つの欠點もあります。特定のページでページの読み込みが完了した後に実行された複數(shù)のスクリプトを使用する場合、

に登録する最後のスクリプトは、実行する唯一のスクリプトになります。本當に必要なのは、すでにそこにあるものを上書きせずに、ウィンドウオブジェクトのオンロードハンドラーに関數(shù)を取り付ける方法です。殘念ながら、Internet Explorerやその他のブラウザーは、このような動的なイベントの添付ファイルを処理する方法が異なります。以下は関數(shù)です:window.onload

function extractBlockquoteCitations() {
    var quotes = document.getElementsByTagName('blockquote');
    for (var i = 0; i < quotes.length; i++) {
        var cite = quotes[i].getAttribute('cite');
        if (cite) {
            var a = document.createElement('a');
            a.setAttribute('href', cite);
            a.setAttribute('title', cite);
            a.appendChild(document.createTextNode('Source'));
            var p = document.createElement('p');
            p.className = 'blockquotesource';
            p.appendChild(a);
            quotes[i].appendChild(p);
        }
    }
}
以下は、ウィンドウオブジェクトのロードイベントにブロッククォート関數(shù)を追加するコードです。

addEvent(window, 'load', extractBlockquoteCitations);最後のステップは、CSSで引用をスタイリングすることです。これは、ブロック參照を処理する比較的単純なCSSコードスニペットです。

完成品はここで見ることができます。

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;
    }
}
パネルスイッチ

さて、より高度な動的効果、つまりパネルスイッチャーを考えてみましょう。ここでの目標は、ページに複數(shù)のパネルを配置し(Divタグを使用)、一度に1つのパネルのみを表示することです。常に表示されるリンクのセットを使用して、現(xiàn)在表示されているパネルを選択できます。これは、タブを選択するたびにページを更新せずに、タブ付きインターフェイスを構築して、関連するさまざまな畫面を閲覧するのに役立ちます。
JavaScriptを使用してページを強化するときはいつでも、JavaScriptが無効になっていても、ページがまだ利用可能でなければならないという良いルールを覚えておく必要があります。この場合、これは、JavaScriptが有効になったときに理想的なソリューションが宣伝されているように機能する必要があることを意味しますが、非JavaScript環(huán)境では、すべてのパネルをページに表示する必要があり、各リンクは関連パネルに直接リンクし、URLスニペットを使用します。

それから、これは機能する最も簡単なマークです:

`

パネル1

|

これはパネル1 です これはパネル2です`

驚くべきことに、上記は、目的の効果を作成するためにいくつかのJavaScriptをフックするために必要なほぼすべてのマークアップです。上記のコードを続けることができますが、リンクにクラスを追加して、特別な運用を実行したいことを明確にしましょう。

<a href="http://www.miracleart.cn/link/65dfa16ba6de9bdb34ea435c9fe2a425" class="toggle">Panel 1</a> | <a href="http://www.miracleart.cn/link/379d08c7a38df48c777c07ea990a3bcf" class="toggle">Panel 2</a>

//

以下は、JavaScriptの仕組みです。ページが読み込まれると、スクリプトは、クラスに「トグル」を含むリンクをページ上のすべてのリンクをスキャンします。見つかったリンクの場合、HREF屬性がチェックされ、指定された要素が配置され、ターゲット要素アレイに追加されます。最初の要素を除く他のすべての要素は「閉じている」ため、ページがロードされると、最初のパネルのみが表示されたままになります。リンク自體は、JavaScriptイベントハンドラーを添付して、それらがアクティブ化されると、対応するパネルを表示できるようにします。

完全なスクリプトはここで見ることができます。以下は、コードの仕組みについての段階的な説明です。

var et_toggleElements = [];

最初の行は、ページ上のパネル要素への參照を保存するグローバルな空の配列を作成します。このスクリプトにはグローバル変數(shù)と多くの関數(shù)があるため、各関數(shù)に「ET_」(「Easy Toggle」の場合)を接続します。これにより、関數(shù)が同じページにロードされた他のスクリプトとの名前が競合する可能性が減ります。

/* Initialisation */ function et_init() { var i, link, id, target, first; first = true; for (i = 0; (link = document.links[i]); i ) { ... }

これまでのところ、いくつかの変數(shù)を初期化し、最初のフラグをtrueに設定し、ドキュメント內(nèi)のすべてのリンクを繰り返し始めました。変數(shù)を使用して変數(shù)を使用して宣言することは非常に重要です。変數(shù)が関數(shù)に局所的であることを保証するためです。このステップがなければ、それらはグローバルにアクセス可能であり、他のスクリプトに干渉する可能性があります。

var

if (/btoggleb/.exec(link.className)) { ... }この條件は、現(xiàn)在リンクされているクラスに「トグル」が含まれているかどうかをチェックします。クラスのプロパティには、スペースで區(qū)切られた複數(shù)のクラスを含めることができるため、

をチェックするだけではなく、正規(guī)表現(xiàn)を使用します。

は、正規(guī)表現(xiàn)です。 link.className == 'toggle' /btoggleb/ b

リンクされたクラスリストにトグルが含まれている場合、リンクのターゲットがURLスニペットであると仮定します。 id = link.href.split('#')[1];

#タグでリンクhrefを分割する - 興味のある部分は#の後であることがわかっているため、

を使用して結果配列を直接インデックスしてターゲットIDを抽出します。

link.href.split('#') [1]

ここで、リンクが要素が存在することを示すという別の仮定を立てます。 getElementById()メソッドを使用して要素を取得し、アレイの現(xiàn)在の長さに等しい配列インデックスに割り當てて、要素の配列に追加します。これは、配列が0からインデックス作成を開始するため、配列の長さはアレイの次の空のスロットのインデックスでもあります。

if (first) { first = false; } else { target.style.display = 'none'; }

これは、私たちが以前に定義した最初のロゴが登場する場所です。 Webサイトの最初のパネルが表示されたままになりますが、他のパネルはCSSの「表示:なし」に相當するJavaScriptを使用して隠されています。このフラグを使用すると、これを行うことができます。

link.onclick = et_toggle;

最後に、et_toggle関數(shù)をリンクされたonclickイベントに割り當て、リンクがアクティブになるたびに関數(shù)が呼び出されます。次のステップは、関數(shù)を定義することです。

function extractBlockquoteCitations() {
    var quotes = document.getElementsByTagName('blockquote');
    for (var i = 0; i < quotes.length; i++) {
        var cite = quotes[i].getAttribute('cite');
        if (cite) {
            var a = document.createElement('a');
            a.setAttribute('href', cite);
            a.setAttribute('title', cite);
            a.appendChild(document.createTextNode('Source'));
            var p = document.createElement('p');
            p.className = 'blockquotesource';
            p.appendChild(a);
            quotes[i].appendChild(p);
        }
    }
}

繰り返しますが、splitメソッドを使用して、リンクからIDを抽出します。

表示するパネルがわかります。要素配列を繰り返して、IDが目的のパネルのIDと一致する要素を除く他のすべての要素を閉じることができます。

falseを返すことにより、アクティブ化されたときにリンクが実際に追跡されるのを防ぎます。

最後のステップは、前述のaddEvent関數(shù)を使用して、ウィンドウの荷重イベントにet_init関數(shù)を登録することです。

addEvent(window, 'load', et_init);

ここで実行中の完了コードを表示できます。

結論
この記事では、有用な効果のためにJavaScriptとW3C DOMで適切に構造化されたマーカーを使用できる2つの方法が見られます。この投稿が、JavaScriptとSmart Taggingを使用する新しい方法を見つけるように促すことを願っています。

さらに読み取り
構造化されたタグに基づいたJavaScript効果の他の多くの優(yōu)れた例があります。ここに注意を払う価値のある例がいくつかあります:

    Aaron Boodman's Labels.js
  • スチュアートラングリッジによる素敵なタイトル
  • スチュアートラングリッジのaqlists
  • Stuart Langridgeのソートテーブル
  • ピーター?ポール?コッホの目次
JavaScriptの構造化されたタグに関するよくある質問

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ツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開発に使用されますが、JavaScriptは主にWebページ開発に使用されます。

JSで日付と時間を操作する方法は? JSで日付と時間を操作する方法は? Jul 01, 2025 am 01:27 AM

JavaScriptで日付と時間を処理する場合は、次の點に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお勧めします。 2。時間情報を取得および設定して、メソッドを設定でき、月は0から始まることに注意してください。 3.手動でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお勧めします。これらの重要なポイントを習得すると、一般的な間違いを効果的に回避できます。

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

JavaScript vs. Java:開発者向けの包括的な比較 JavaScript vs. Java:開発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設定することにより実裝されます。 2。イベントバブルはデフォルトの動作であり、UseCaptureはfalseに設定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

JavaScript:効率的なコーディングのためのデータ型の調(diào)査 JavaScript:効率的なコーディングのためのデータ型の調(diào)査 Jun 20, 2025 am 12:46 AM

javascripthassevenfundamentaldatypes:number、string、boolean、undefined、null、object、andsymbol.1)numberseadouble-precisionformat、有用であるため、有用性の高いものであるため、but-for-loating-pointarithmetic.2)ストリングリムムット、使用率が有用であること

JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? Jun 26, 2025 am 12:54 AM

JavaScriptアプリケーションがゆっくりとロードされ、パフォーマンスが低い場合、問題はペイロードが大きすぎることです。ソリューションには、次のものが含まれます。1。コード分割(コードスプリッティング)を使用し、React.lazy()またはビルドツールを介して大きなバンドルを複數(shù)の小さなファイルに分割し、最初のダウンロードを減らすために必要に応じてロードします。 2。未使用のコード(Treeshaking)を削除し、ES6モジュールメカニズムを使用して「デッドコード」をクリアして、導入されたライブラリがこの機能をサポートしていることを確認します。 3.リソースファイルを圧縮してマージし、GZIP/BrotliとTerserがJSを圧縮できるようにし、ファイルを合理的にマージし、靜的リソースを最適化します。 4.頑丈な依存関係を交換し、day.jsやフェッチなどの軽量ライブラリを選択します

JavaScriptモジュールの決定的なJSラウンドアップ:ESモジュールvs CommonJS JavaScriptモジュールの決定的なJSラウンドアップ:ESモジュールvs CommonJS Jul 02, 2025 am 01:28 AM

ESモジュールとCommonJSの主な違いは、ロード方法と使用シナリオです。 1.CommonJSは同期的にロードされ、node.jsサーバー側環(huán)境に適しています。 2.ESモジュールは、ブラウザなどのネットワーク環(huán)境に適した非同期にロードされています。 3。Syntax、ESモジュールはインポート/エクスポートを使用し、トップレベルのスコープに配置する必要がありますが、CommonJSは実行時に動的に呼ばれるrequire/Module.Exportsを使用します。 4.CommonJSは、Expressなどのnode.jsおよびLibrariesの古いバージョンで広く使用されていますが、ESモジュールは最新のフロントエンドフレームワークとnode.jsv14に適しています。 5.混合することはできますが、簡単に問題を引き起こす可能性があります。

See all articles