問題タブ [dom4]
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 - 新しい要素を作成するための Mutation Observer
特定の div が作成されたときに関数をオフにしようとしています。簡単に言えば、次のようなものがあります。
以前は、ミューテーション イベントで div#bar の作成をリッスンしていました。次のようなものです。
Mutation Observers を使用して同等のものはありますか? Can you have a javascript hook trigger after a DOM element's style object changes? に掲載されている attrchange.js を試してみました。ただし、そのプラグインは、要素が作成されたときではなく、要素が変更されたときのみを検出します。
javascript - When are MutationObserver callbacks fired?
I know that MutationObservers callbacks may get called sometime after the DOM change. But the question is: What is the timing of these callbacks? Do the callbacks enter the event queue of the browsers? If so, when do they enter the queue?
Are the callbacks:
- called immediately after the DOM mutation take place,
- called as soon as the function that manipulate DOM finishes,
- called as soon as the call stack is empty,
- enqueued immediately after the DOM mutation take place,
- enqueued as soon as the function that manipulate DOM finishes, or
- at some other time?
For example, if the following piece of code is executed (with setZeroTimeout defined here):
Should "MutationObserver" be printed before "message event" or after it? Or is it implementation-defined?
I'm getting "MutationObserver" before "message event" on Chromium 26, though the DOM mutation is after message posting. Maybe this is indicating that MutationObserver callbacks are not using the event queue.
I have googled for HTML specification, DOM specification or browser implementation documents, but I didn't found anything related to this behavior.
Any explanation or documentation on the timing of MutationObservers callbacks please?
javascript - ポリフィルを使用して Shadow DOM をどの程度までエミュレートできますか?
DOM を検索およびトラバースするためのカスタム関数を提供することで、Shadow DOM W3C ドラフトを JavaScript でポリフィルできますか? これは行われましたか?私が見つけた試みはかなりおとなしいシムであり、仕様をエミュレートするために多くの努力をしていないようです.
これが簡単な作業ではないことは承知していますが、誰かが十分に検討したのではないでしょうか?
callback - どの MutationObserver からコールバックが呼び出されたかを検出する方法はありますか?
2 つの異なる dom ノードに対して 1つのコールバック関数と 2 つのMutationObserversがある場合、呼び出されたときにどのオブザーバーがコールバックをトリガーしたかを知る方法はありますか? コールバックが実行する必要がある作業はほぼ同じなので、オブザーバーごとに 1 つ作成するのは望ましくないようです。
javascript - ID をタグに追加する際に DOMSubtreeModified イベントが発生しないようにする
DOMSubtreeModified を使用して、div 内のすべての DOM 変更を取得しています。
上記のコードでは、DOM の変更時に createUniqueId() 関数を呼び出しています。
上記のコードは、ID を持たないタグごとに一意の ID を作成します。
Id を割り当てると、DOMSubtreeModified イベントが発生します。
ID の割り当て時に DOMSubtreeModified イベントを発生させないようにするにはどうすればよいですか?
php - Web アプリケーションに最低限必要なブラウザー バージョンを要求する
フロントエンドでMutationObserverなどの最新のブラウザー機能が必要な PHP の Web アプリケーションがあります。サイトに記載されているように、この機能をサポートするのは非常に新しいブラウザーのみです。同じことが、私が依存する必要があるいくつかの HTML5 機能にも当てはまります。
私が今達成したいのは、ユーザーが実行しているブラウザーの UserAgent-String を使用してサーバー側を確認し、特定のバージョンを下回っている場合は、使用する必要があることを通知される情報ページにリダイレクトすることです。新しいブラウザ。
私はしばらくの間、適切な正規表現をセットアップして UA 文字列をチェックしようとしてきました。ただし、ブラウザーの製造元が常にクリーンなスキーマを保持しているとは限らないため、少し行き詰まっています。たとえば、Opera ブラウザーの場合、最小バージョン 12 が必要だとします。
- Opera 12.14 の例 1: Opera/9.80 (Windows NT 6.0) Presto/2.12.388 バージョン/12.14
- Opera 12.14 の例 2: Mozilla/5.0 (Windows NT 6.0; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 12.14
これは Firefox 4.0 の場合もあります。 - Opera 11.51: Mozilla/5.0 (互換性あり; MSIE 9.0 ; Windows NT 6.1; de) Opera 11.51
これは Internet Explorer 9.0 の可能性もあります。
また、Opera 12.14 の 2 つの例に示されているように、同じブラウザーとバージョンを追跡するのは注意が必要です: 「Version/12.14」または「Opera 12.14」、またはその他のかなり「ランダムな」文字列です。他のブラウザの場合、問題は非常に似ています。
質問は次のとおりです。どのように進めますか?
方法 1:
useragentstring.com には、ユーザーがウェルカム ページにアクセスしたり、ログインしたりするたびにクエリを実行できる API があります。セキュリティとアプリのパフォーマンスの問題で、これが良いアイデアかどうかはわかりません。
方法 2:
browscap.ini と組み合わせた PHP の get_browser() 関数。この方法では、デスクトップ ブラウザーとモバイル ブラウザーを区別できません。
方法 3:
方法 2 の代わりにphpbrowscapを使用できます。この場合、アクセスできないサーバーのどこかにある browscap.ini に依存することなく、独自の browsercap.ini を定義できます。
または他の方法はありますか?
いくつかのコメントをいただければ幸いです。
javascript - MutationRecord が発生した正確な場所 (複数のターゲット) を知るには?
要素のグループを観察しようとしています。要素の数は、1 から 10 までさまざまです。
そう..
いずれかの要素の値が変更された場合、MutationRecord.type characterData を受け取ります。私の例では、$observedElements[1] が '35.00' から '25.00' に変わります。
しかし、この変更が優れた $observedElements[1] にあったことをどのように知ることができますか? 受信した target.textContent には、テキスト値のみが含まれています。