Ich versuche MutationObserver zu verwenden, um Änderungen des Stilattributs im body-Element zu beobachten und die Überlaufeigenschaft des Stilattributs body zu ändern. Das Stilattribut ändert sich, wenn ich das Browserfenster verkleinere. Firefox landet abstürzt sagen nicht reagierende Skript. Kann jemand darauf hinweisen, was ich hier falsch mache. Es scheint jedoch in Chrome richtig zu funktionieren.JavaScript MutationObserver ruft rekursiv sich selbst auf
Mein Code:
var target=document.body;
var Observer=new MutationObserver(function(mutations) {
mutations.forEach(function(mutationRecord){
document.body.style.overflow="auto";
});
});
Observer.observe(target,{attributes:true,attributeFilter:['style']});
Ihr Beobachtungsstil ändert sich, dann ändert sich ein Stil als Antwort, dann beobachtet er Stiländerungen, dann ändert er eine Stiländerung in der Antwort .... usw. So sieht es für mich aus? –
ich verstehe, aber es funktioniert ohne irgendwelche Probleme auf chrome.Ist es irgendwelche Arbeit für Firefox, die ich hier verwenden kann. – tazz
In der Tat. Sie sollten keine Stiländerungen in einem Mutationshandler haben, der nach Stiländerungen sucht, da Sie im Grunde eine Endlosschleife erstellt haben. Sie könnten etwas wie die Quelle der Stiländerung hinzufügen. Wenn also die Stiländerung durch den Mutationshandler ausgelöst wurde, sollte die Schleife nicht fortgesetzt werden. – Shilly