問題タブ [mutation-events]
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.
html - DOMミューテーションイベントの置換
DOMミューテーションはw3cによって非推奨としてマークされているため(http://www.w3.org/TR/DOM-Level-3-Events/#events-mutationeventsを参照)、属性の変更を検出するための(高速な)代替方法はありますか? DOMで?
javascript - Webkit で要素のスタイルが変更されたときに JavaScript で検出するにはどうすればよいですか? (DomAttrModified はサポートされていないようです)
要素のスタイルが変更されたときに JavaScript で検出しようとしています。この変更が検出されると (.NET バリデーターがトリガーされると表示されるようになります)、ページの別の場所で別の変更がトリガーされます (.NET コードによって制御されない無関係な要素に対する視覚効果)。
DomAttrModified (または IE の場合は propertychange) を使用して、変更が発生したときに通知するイベント ハンドラーを設定できます。ただし、これは Webkit ではサポートされていません。私が探していることを行う代替またはわずかに異なるハンドラーはありますか?
これは、私が現在 Firefox と IE で使用しているものを示すデモ ページです: http://cssquirrel.com/testcases/detect-style-change/
考え?
javascript - 機能/イベントのブラウザサポートを確認するにはどうすればよいですか?
以前は、ブラウザスニッフィングを使用して、特定のイベントまたは機能が利用可能かどうかを推測していました。ブラウザのスニッフィングは、機能のスニッフィングを優先して「非推奨」または「回避」されていることを理解しています。特定のイベントを処理できるかどうかを確認する方法を教えてください。
例にとってみましょうDOMNodeInserted
。Chrome、FF、Safariでサポートされていますが、IEではサポートされていません。このイベントが利用可能な場合、どうすればスニッフィングできますか?図書館はありますか?どうやって適切な機能スニッフィングをしますか?
jquery - Jquery-DOM要素が追加されたときに関数を実行します
jQueryとjQueryUIを備えたWebサイトがあります。私はJavascript関数を持っています:
この関数は、ページの読み込み後に実行され、クラス「ToButton」のすべての要素を変更します。
また、ユーザーがボタンを押すとHTMLコードが変更されます。例えば:
また、この新しい要素に対してToButton関数も実行したいのですが、jQueryのライブメソッドまたはデリゲートメソッドには「show」または「create」イベントタイプがありません。したがって、すべてのHTMLコードを変更した後、関数ToButton()を呼び出す必要があります。
ToButton関数をすべての要素に委任する方法を教えてください。
javascript - domnodeinserted前 - javascript
ノードが挿入される前にイベントを起動することは可能ですか? 「domnodeinserted」が gecko ベースのブラウザーで機能することは知っていますが、ノードが挿入された後にコードが実行されることは知っています。ノードが挿入される前に実際にコードを実行したい。前もって感謝します!
javascript - DOMNodeInsertedIntoDocumentイベントを回避する
createMyElement
HTMLドキュメントに挿入できるノードを返すjavascript関数があると仮定します。
正しく機能するために、によって作成されたノードのコードは、少なくともドキュメントに挿入されるとすぐcreateMyElement
に、グローバル上のイベントをリッスンする必要があります。document
私の最初の試みは、作成時にノードにリスナーを追加し、必要なリスナーを順番に追加および削除することでしDOMNodeInsertedIntoDocument
た。DOMNodeRemovedFromDocument
document
ただし、ミューテーションイベントは現在廃止されているため(ブラウザ間で確実に機能しないようです)、より良い解決策を探しています。
document
ノードの作成時にイベントのリスナーを追加すると機能します。ただし、これはメモリとパフォーマンスのリークを引き起こすため、適切な解決策ではないようです。ノードがドキュメントから再度削除されて不要になった後でも、リスナー(およびノードへの参照)document
はまだ持続します。
javascript - DOMNodeInsertedの代替
DOMNodeInsertedは動的ページを遅くすることが知られており、MDNはそれをまったく使用しないことを推奨していますが、代替手段は提供していません。
挿入された要素には興味がありません。スクリプトがDOMを変更するタイミングを知る必要があります。ミューテーションイベントリスナー(おそらくnsiTimer内のgetElementsByTagName)に代わるより良い方法はありますか?
dom - DOMAttrModified ビジュアル属性
私は DOMAttrModified にいくつかのパッチを適用して Webkit で作業していますが、どのような属性を変更するとこのイベントがトリガーされるのでしょうか? たとえば、innerHTML を変更してもトリガーされません。また、これらの属性のどれがユーザー インターフェイスを直接変更するかを簡単に知る方法はありますか? たとえば、id は直接ではありませんが、id の値に応じて間接的に JavaScript によって変更される可能性があります。
ありがとう!
javascript - JQueryまたはバニラJavascriptのDOMミューテーションイベント
クロスブラウザを起動するJQueryまたはバニラJavascriptにDOMミューテーションイベントはありますか?
明確にするために、divを本文に挿入するスクリプトがページにあるとします。スクリプトにアクセスできず、divがいつ挿入されたかわかりません。要素がいつ挿入されたかを知るために、リスナーを追加できるDOMミューテーションイベントがあるかどうか疑問に思いました。タイマーを使用して挿入を定期的にチェックできることは知っていますが、これによって発生するオーバーヘッドはあまり好きではありません。