問題タブ [mutation-observers]
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 - MutationObserver メカニズムが起動する (onVisibilityChanged) 前に要素の状態をキャプチャする方法はありますか?
JavascriptMutationObserver
を使用して要素の状態の変化に関する情報を取得し、変更前の要素の状態を取得してから、現在の状態を確認し、それに基づいて決定を下そうとしています。
基本的に私はonVisibilityChanged
イベントを実装しようとしています。
気になる要素の変更をキャプチャしてから、それらが表示されているかどうかを確認します。次に、可視性がブロードキャストされたものと異なる場合visibilityChanged
。
発生した変更を取得しているため、要素のクローンを作成し(MutationEvent[0].target
)、すべての変更を元に戻して、クローンが表示されているかどうかを確認できますが、これは「ハッキー」で非効率的に聞こえるので、方法があるのではないかと考えていました突然変異が起こる直前に要素をキャプチャする。すべての変更が発生した後に解雇されるので、それはロングショットでMutationObserver
あり、時間旅行のようなものであることは理解していますが、私はすべてあなたの提案に耳を傾けています.
javascript - document.createElement() で要素の作成を追跡する方法はありますか?
document.createElement()
イベントをキャッチする方法はありますか?
たとえば、<body>
私が持っているセクションのどこかに
セクションからそのイベントを追跡することは可能です<head>
か (addEventListener、ミューテーション オブザーバー、またはその他の方法を使用)。
注:挿入ではなく、要素の作成を追跡する必要があります
javascript - Youtube のコメントが DOM ミューテーションを起こさないのはなぜですか?
Google Chrome 拡張機能を開発しています。そのコンテンツ スクリプトは、そのページが変更されるたびに起動する必要があり、ほとんどの場合に実行されます。これには a を使用しMutationObserver
ています。
ただし、YouTube (およびおそらく問題に気付いていない他の Web サイト) を使用していて、下にスクロールしてコメントを読み込むと、 が起動しMutationObserver
ません。これはなぜですか? DOM は変更されるべきではありませんか?
subtree
編集: 、childList
およびattribute
の変更を監視するようにオブザーバーを設定したことを追加したい場合がありdocument.body
ます。
javascript - jQuery を使用せずに Ajax 経由で追加された DOM 要素を繰り返し処理して変更する
私はPageMod
、Web ページに読み込まれた画像要素を処理するために使用する小さな Firefox アドオンに取り組んでいます。jQuery を使用した Web 上の例を見てきましたが、すべての Web ページにコンテンツ スクリプトを追加しているため、jQuery を追加すると取り返しのつかない損害が発生する可能性があります。
Firefox がサポートしているので、 AndrewVermieMutationObserver
のおかげで次のことを試みました。
content.js
main.js
何が起こるのですか :
- http://imgur.com/にアクセスしてください
- 画像が動的に読み込まれるまでスクロールを開始します
- 変更されていないことに注意してください
私はいつもconsole.log()
、画像にカーソルを合わせたときに.tagName
のみ表示p
されます。#text
必要なもの
スクリプトが挿入された Web ページ内に動的にロードされた各要素を反復処理し、要素の属性を変更できるようにします。
純粋な JavaScript を使用して、または使用せずにそれを行うことができれば、それはMutationObserver
本当に盛り上がります。
それ以外の場合は、ページのすべての要素をもう一度繰り返すためにいくつかの要素が読み込まれていることがわかった場合、それは問題ありませんが、膨らみません。
私は物事を少し片付けたことを願っています。
どんな助けでも大歓迎です。
javascript - jQuery を使用せずに DOM 要素の変異を検出する方法
次の HTML があるとします。
この要素で高さの変化が発生したときにアラートを受け取りたいです。MutationObserverクラスがこれに役立つことを望んでいましたが、ここに私の問題があります:
期待どおりにコールバックをトリガーしますが、通常のユーザー操作ではこれはトリガーされません。たとえば、http://jsfiddle.net/wq4q9/2/
私の質問は、要素の高さが変更されたかどうかを確認するための最新の最良のアプローチは何ですか?
jQueryはありません。