Chrome拡張機能内に次のコードがあります:
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.type === "childList") {
Log.Debug("mutation: Childlist:"+mutation.addedNodes.length);
forEach.call(mutation.addedNodes, function (addedNode) {
if (addedNode.classList !== undefined) {
if (addedNode.classList.contains('nja')) {
Log.Debug("DOM PD:"+addedNode.classList);
DoFancyStuff(addedNode);
}
}
}
}});
これは、コンテンツを動的に追加するサイトで発生します。(Google+)。ユーザーが下にスクロールして、いくつかの新しい要素を追加するだけで、すべてが完璧に機能します。
ユーザーがブラウザからしばらく離れてボタンをクリックすると、多くの新しい要素が表示され、MutationObserver はいくつかのノードを見落としているように見えます。デバッグ ウィンドウ内でこの動作を確認できます。(「nja」クラスで追加された div のいくつかはコンソールに書き込まれますが、そうでないものもあります)
したがって、これは一度に追加される div が多すぎない場合にのみ機能するようです。この動作を変更する構成はありますか?
(これは chrome 拡張機能であるため、他のブラウザーではなく chrome のソリューションのみが必要です)