問題タブ [html5-template]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - HTML テンプレート (カスタム) タグ
カスタム html タグの使用がさまざまな理由で不適切であることは理解していますが、カスタム html タグを使用することを保証する特定の状況を実行したいと考えており、別の方法で、または私の目標を達成するためのより良い方法が得られることを願っています。
私のコード全体を通して、テンプレートとそれに付随する非表示のクラスを含む div タグで構成されるテンプレートと呼ばれるものがあります。これは画面には表示されませんが、基本的にこれらの「テンプレート」タグには、さまざまなアイテムを作成するために Javascript で使用する html が含まれています。これは、HTML でテンプレートのスタイルを設定できるようにするためであり、JavaScript に CSS を混在させることを心配する必要はありません。
JavaScriptでは、次のようなことをします
むしろこういうことができればいいのに
そのため、単一の div に複数のテンプレートがある場合、一意のクラス名を付けるのではなく、それらすべてを取得できます。もちろん、実装が必要な理由はこれよりもはるかに深くなりますが、詳細に時間を無駄にする必要はありません。私のJavascript ALOTをクリーンアップするのに役立つとだけ言っておきましょう.
カスタム テンプレート タグは非表示であり、実際には、javascript 内で document.getElementsByTagName("template"); を使用して呼び出すのに便利なコンテナーに過ぎないためです。これは大丈夫ですか?テンプレートがhtmlに実装された場合に備えて、タグにカスタム名をプレフィックスとして付けます。
jquery - HTMLテンプレートタグとjquery
<template>
HTMLソースでタグを使用しようとしているこの状況があります:
これにより、最終的にテンプレートがドキュメントに配置されますが、DOM にあるとは見なされません。これは、テンプレート タグをサポートするブラウザーで $("#content-container") が見つからないことを意味します。私が検索した場合:
私はこれを取り戻します:
これのどれも私を驚かせません。方法を知る必要があるのは、ドキュメント フラグメントのコンテンツを複製し、必要な場所で DOM に貼り付けることができる新しいノードを作成することです。
jQueryを使わずにこれを行う方法の例を見つけましたが、このようなコードの多くはすでにjQueryを使用しており、jQueryを使用してこれを行う方法を知る必要があります.
私が最初に考えたのは、html を取得し、それを使用して新しいノードを作成することでした。
これにより、次のエラーが発生します。
エラーが口ひげの構文によるものかどうかはわかりません。この動作のどこかにjQueryソリューションが必要だと思いますが、Googleで検索すると、jQueryテンプレートのヒットが大量に表示されますが、これは異なります。
これを解決するのに役立つサイト/ページへの考え、回答、またはポインタを持っている人はいますか? 私はハック的なものを一緒にまとめるのを避けようとしています。
編集:私はこの解決策を見つけました(解決策であることを確認するためにまだテストしていますが、有望に見えます);
以前は本当に必要ではなかった div を含むことになりますが、それを受け入れることができます。でも、こういうのはダサく感じる。誰もこれに対するより良いアプローチを持っていますか? 利点は、テンプレート タグの動作をまだ完全に適応させていないブラウザーでも機能することです。
ありがとう!
javascript - HTML 5 テンプレート タグ (ページの更新)
HTML 5 テンプレート タグを使用したかったのですが、ページの更新後に混乱する動作が発生します。たぶん、最初にいくつかのコードを示します。
実際、これは期待どおりに機能しますが、コンソールで混乱することがあります。最初にページを開くと、次のように表示されます。
しかし、ページを更新すると、次のように表示されます。
それを繰り返すと、最初の写真のものが再び見えます。jsbin でも試してみましたが、この動作が見られません: http://jsbin.com/ofotah/1
そこで何が起こっているのか、まったくわかりません。Google Chrome バージョン 27.0.1453.110 (Windows)を使用しています。これで私を助けてくれることを願っています。
html - テンプレートの Shadow DOM で飾られた HTML 要素からシャドウ ルートを削除するには?
Chrome Canary (33.0.1712.3) のインポート、テンプレート、シャドウ DOM、およびカスタム要素を調査しています。グリッド レイアウトには、ファイルからインポートされたさまざまな Web コンポーネントまたは複製されたライト DOM フラグメントを表示する特定のコンテンツ要素 (ディスプレイの領域) があります。
ただし、シャドウ DOM を追加すると、シャドウ ルートを削除する方法がわからないため、通常の HTML DOM を再表示できません。一度作成されると、シャドウ ルートは残り、通常の DOM のレンダリングを妨げます。(Web コンポーネントの紹介、シャドウ DOM、テンプレート、HTML5 Rocks に関する Bidelman の記事など、さまざまな W3C 仕様を調べました) 以下の簡単な例で問題を切り分けました。
「普通の古いdivを表示」をクリックします。「影付きのテンプレートを表示」をクリックします。「普通の古いdivを表示」をクリックします。クリックするたびに devtools で検査します。3回目のクリックの後、ボタンの下とdevtoolsに出力がありません:
シャドウ ルートを削除し、コンテンツ要素を初期状態に完全にリセットするには、removeShadow() に何を追加する必要がありますか?
remove_shadows.html
javascript - テンプレート内の入力フィールドに content タグを追加する
新しい html5 テンプレート タグを使用して、JavaScript をあまり使用せずに複数のユース ケースに配置できる半汎用フォームを作成しようとしています。
ここに私が持っているものを示すフィドルがありますhttp://jsfiddle.net/684uH/
<content>
私の目標は、プレースホルダーテキストの「名前」を、通常タグにあるものに置き換えることです
私の主張を理解するための架空の例は次のとおりです。
同様のことを行う方法はありますか、それとも javascript を使用して手動で設定する唯一の方法ですか?