問題タブ [dom]
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.
php - DOMElement の親ノードを決定する
YouTube ビデオ コメント用の C# コードを PHP に変換しています。コメントの返信を適切にネストするには、XML ノードを再配置する必要があります。PHP では、C# XmlDocument に密接に対応する DOMDocument と DOMXPath を使用しています。私は翻訳をかなり進めましたが、今は DOMElement の親ノードを取得することに行き詰まっています。DOMElement には parent_node() プロパティがなく、DOMNode だけがそのプロパティを提供します。
リンク要素の文字列「in-reply-to」に基づいて、コメントが前のコメントへの返信であると判断した後、返信先のコメントの下にネストするために、その親ノードを取得する必要があります。
javascript - cloneNode(true) の使用後に正しい Javascript イベントを維持する方法
複数行の入力を含むフォーム要素があります。各行は、Web アプリケーションで作成する新しいオブジェクトの属性と考えてください。そして、1 回の HTTP POST で複数の新しいオブジェクトを作成できるようにしたいと考えています。Javascript の組み込み cloneNode(true) メソッドを使用して、各行を複製しています。問題は、各入力行にも onclick イベントに添付された削除リンクがあることです。
複製された入力行の削除リンクをクリックすると、同じ dom オブジェクトから複製された入力行も削除されます。上記のDOM要素でcloneNode(true)を使用した後、「this」オブジェクトを適切なアンカータグに再バインドすることは可能ですか?
internet-explorer - DOM 変更の印刷
私がやろうとしているのは、表のセル <td> の背景色を変更することです。ユーザーがページを印刷しようとすると、変更が表示されます。
現在、目立たないスクリプトを使用して、セルの範囲で次のコマンドを実行しています。
これは IE および FF の画面では機能しますが、印刷プレビューに移動すると、背景色が失われます。
私は何か間違ったことをしていますか?
xml - DOM splitText と正規化構成で ID を指定する必要がありますか?
昨日、DOM 実装の癖に関する議論に巻き込まれ、Text.splitText と Element.normalise の動作と、それらがどのように動作するかに関する興味深い質問が生じました。
DOM Level 1 Coreでは、 Text.splitText は次のように定義されています...
この Text ノードを指定されたオフセットで 2 つの Text ノードに分割し、ツリー内で両方を兄弟として保持します。このノードには、オフセット ポイントまでのすべてのコンテンツのみが含まれます。また、このノードの次の兄弟として挿入される新しい Text ノードには、オフセット ポイント以降のすべてのコンテンツが含まれます。
ノーマライズは…
この Element の下のサブツリーの深さ全体にあるすべての Text ノードを、マークアップ (タグ、コメント、処理命令、CDATA セクション、およびエンティティ参照など) のみが Text ノードを分離する「通常の」形式にします。隣接する Text ノードはありません。これは、ドキュメントの DOM ビューが保存されて再ロードされた場合と同じであることを保証するために使用でき、特定のドキュメント ツリー構造に依存する操作 (XPointer ルックアップなど) が使用される場合に役立ちます。
したがって、「Hello World」を含むテキスト ノードを取得し、textNode で参照すると、
textNode のコンテンツが「Hello」になり、新しい兄弟に「World」が含まれるようになりました
私なら
textNode とは何ですか? 仕様では、textNode が以前の親の子である必要があることを明確にしておらず、隣接するすべてのテキスト ノードを含むように更新するだけです (その後削除されます)。隣接するすべてのテキストノードを削除してから、値を連結して新しいノードを再作成し、textNode がツリーの一部ではなくなったものを指すようにすることは、準拠した動作のようです。または、splitText と同じ方法で textNode を更新して、ツリーの位置を保持し、新しい値を取得することもできます。
動作の選択は実際にはかなり異なり、どちらが正しいか、またはこれが単に仕様の見落としである場合 (レベル 2 または 3 で明確化されていないようです) についての明確化を見つけることができません。そこにDOM / XMLの専門家が光を当てることができますか?
html - XHTMLを任意の数の単語にどのように省略しますか?
XHTML
閉じていないタグや破損したタグを残さずに、プログラムで任意の数の単語をプログラムで省略しますか?
すなわち
25語に省略すると次のようになります。
javascript - FirefoxとIE:innerHTMLの処理
何時間ものデバッグの後、FireFoxではDOMのinnerHTMLは実際にマークアップにあるものを反映しているように見えますが、IEではinnerHTMLはマークアップにあるものに加えてユーザーによってまたは動的に(つまりJavascriptを介して)行われた変更を反映しています)。
他の誰かがこれが本当だと思ったことがありますか?両方が同じように動作することを保証するための興味深い回避策はありますか?
javascript - window.onload または script ブロックを使用する必要がありますか?
呼び出されたときに DOM を操作する JavaScript 関数があります (CSS クラスを追加するなど)。これは、ユーザーがフォーム内のいくつかの値を変更したときに呼び出されます。ドキュメントが最初に読み込まれるときに、この関数を呼び出して初期状態を準備します (この場合、サーバー側から DOM を正しい初期状態に設定するよりも簡単です)。
window.onload を使用してこの機能を実行するか、変更が必要な DOM 要素の後にスクリプト ブロックを配置する方がよいでしょうか? どちらの場合でも、なぜそれが良いのですか?
例えば:
次の方法で呼び出す必要があります。
また:
前者はそれを行う標準的な方法のようですが、後者は、スクリプトがヒットするとすぐに要素を更新するため、おそらくより良いようです。要素の後に配置されている限り、私は問題はありません。
何かご意見は?あるバージョンは他のバージョンよりも本当に優れていますか?
java - Javaオブジェクト割り当てのオーバーヘッド
複数のスレッドからのアクセスを簡素化するために、Javaで不変のDOMツリーを作成しています。*
ただし、可能な限り高速に挿入と更新をサポートする必要があります。また、不変であるため、ツリーのN番目のレベルのノードに変更を加えた場合、新しいツリーを返すには、少なくともN個の新しいノードを割り当てる必要があります。
私の質問は、ツリーが変更されるたびに新しいノードを作成するよりも、ノードを事前に割り当てる方が劇的に速いでしょうか?実行するのはかなり簡単です。数百の未使用ノードのプールを保持し、変更操作に必要なときにノードを作成するのではなく、プールから1つプルします。他に何も起こっていないときにノードプールを補充できます。(明らかでない場合は、このアプリケーションでは、ヒープスペースよりも実行時間がはるかに長くなります)
これを行う価値はありますか?それをスピードアップするための他のヒントはありますか?
あるいは、不変のDOMライブラリがすでにあるかどうか誰かが知っていますか?検索しましたが、何も見つかりませんでした。
*注:不変性の概念に精通していない場合は、基本的に、オブジェクトを変更する操作で、メソッドが変更されたオブジェクトではなく、変更されたオブジェクトのコピーを返すことを意味します物体。したがって、別のスレッドがまだオブジェクトを読み取っている場合、ひどくクラッシュするのではなく、変更が加えられたことに気付かずに、「古い」バージョンで問題なく動作し続けます。http://www.javapractices.com/topic/TopicAction.do?Id=29を参照してください
javascript - クロスブラウザ方式でJavaScriptを使用してDOMをXMLテキストにシリアル化するにはどうすればよいですか?
XMLオブジェクトがあります(XMLHTTPRequest
'sを使用してロードされますresponseXML
)。オブジェクトを(jQueryを使用して)変更し、文字列のテキストとして保存したいと思います。
Firefoxなどでそれを行う簡単な方法があるようです。
(ロゼッタコードから)
しかし、 IE6や他のブラウザで(もちろんFirefoxを壊すことなく)どのようにそれを行うのでしょうか?
asp.net - Microsoft ASP.NET AjaxはDOMオブジェクトのリークを引き起こしますか?
「Drip」を使用して、UpdatePanelを含むページがクライアント側のメモリを大量に使用する傾向がある理由を特定しようとしています。通常のポストバックのあるページでは、Dripによって検出されたリークは0です。ただし、更新パネルをミックスに追加すると、更新パネル内にあるすべてのDOMオブジェクトがリークしているように見えます(Dripによると)。
Dripがこれらの種類のことを報告するのに十分信頼できるかどうかはわかりません-報告されたリークは、Dripがページをわずかに変更していることを示しているようです。
誰かがこれを経験したことがありますか?パニックになってMicrosoftAjaxの使用をやめるべきですか?私はマイクロソフトを疑う以上のことはしていませんが、それがこれほど悪いことかもしれないと私には怪しいようです。
また、Dripよりも優れたツールを知っている場合は、それも役立ちます。