[英]Mutation Observer or DOMNodeInserted
我在Adobe Captivate的第一張幻燈片上使用了一個腳本,用於自動完成創建,課程,腳本創建UX,導航元素,前/后動作,游戲,插入帶有角色的Spritesheet等任務。 ..
我一直使用DOMNodeInserted直到知道檢查幻燈片上的修改為止,當用戶轉到下一張幻燈片時,將元素添加到DOM中,並且更改了頁面內容,直到現在我都使用此計時器來調用該函數:
function detectChange(){ var slideName = document.getElementById('div_Slide') slideName.addEventListener("DOMNodeInserted", detectChange, false); updateSlideElements(); setTimeout(updateSlideElements, 100); }
因此,我現在嘗試使用變異觀察者:
var observer = new MutationObserver(function(mutations, observer) { updateSlideElements(); }); observer.observe(document.getElementById('div_Slide').firstChild, { attributes: true, childList:true });
但這是正在發生的事情,在使用setTimeout之前,我可以達到以下元素:
var motionText2 = document.querySelectorAll('div[id*=motion][class=cp-accessibility]');
該元素是以下項的firstChild:
可以找到該元素:
但是現在使用mutationObserver,控制台將返回空:
我只是在觀察者內部使用了setTimeout,並觀看了父容器而不是firstChild:
var observer = new MutationObserver(function(mutations, observer) { setTimeout(updateSlideElements, 100); }); observer.observe(document.getElementById('div_Slide'), { attributes: true, childList:true //subtree:true });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.