インラインスタイルにはMutationObserverを使用できますが、外部クラスのスタイルがchromeの開発ツールで変更されたかどうか、そしてその変更内容を検出する方法があるかどうかは疑問です。この例では、緑の木陰にフォントの色を変更する:Chromeの開発ツールでどのクラススタイルが変更されたかを検出するためのポーリング以外の方法はありますか?
これは私が思い付くことができた最高です。 https://jsfiddle.net/cotssc7e/
var elem1 = document.getElementById("elemId");
var this_id = $('#elem-container').attr('id');
var style = window.getComputedStyle(document.getElementById(this_id), "")
function getTheStyle(){
var elem = document.getElementById("elem-container");
var theCSSprop = window.getComputedStyle(elem,null).getPropertyValue("color");
document.getElementById("output").innerHTML = theCSSprop;
}
setInterval(function() { getTheStyle() }, 1000)
私はこのようなMutationObserverを使用しました:
var MutationObserver = window.MutationObserver;
var target = document.querySelector('#page');
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation);
});
});
var config = { attributes: true, childList: true, characterData: true, attributeOldValue: true, subtree:true, attributeOldValue:true, characterDataOldValue:true }
observer.observe(target, config);
しかし、あなたは元の写真を見れば、私が思うので、MutationObserverは、開発ツールからのクラススタイルの変更を検出しません。 DOM htmlは変更されません。私はcss自体でMutationObserverを実行しようとしましたが、クロムは文字通りCSSを変更しませんでした。それらはcomputedStyleを変更するだけです。どのように変化したのか、私が把握しようとしていることです。
それでは、正確に何が問題なのですか?あなたはMutationObserverを使うことができ、毎秒ポーリングするコードを持っていることを知っています....あなたは実際に何を解決しようとしていますか? – epascarello
ポーリングが最適ですか? – Squirrl
私は、クラスがどのように変更されたのか、どのようなクラスになったのかを単純に戻そうとしています。 – Squirrl