您应该可以使用MutationObserver来执行此操作- 请参阅演示(仅限 Webkit),这是一种新的、闪亮的方式来获取有关 DOM 更改的通知。旧的,现在已弃用的方式是Mutation events。
Demo 只是在单击段落时将旧值和新值登录到控制台。请注意,如果旧值是通过非内联 CSS 规则设置的,则旧值将不可用,但仍会检测到更改。
HTML
<p id="observable" style="color: red">Lorem ipsum</p>
JavaScript
var MutationObserver = window.WebKitMutationObserver;
var target = document.querySelector('#observable');
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log('old', mutation.oldValue);
console.log('new', mutation.target.style.cssText);
});
});
var config = { attributes: true, attributeOldValue: true }
observer.observe(target, config);
// click event to change colour of the thing we are observing
target.addEventListener('click', function(ev) {
observable.style.color = 'green';
return false;
}, false);
感谢这篇博文,上面的一些代码。