我試圖檢測元素顯示屬性何時發生變化。最初元素沒有顯示屬性。當元素髮生變化時,我想提醒。我試了下面的代碼,但沒有任何警報。檢測屬性顯示從無顯示到顯示塊
document.getElementById('xxx').addEventListener('DOMAttrModified', function(e){
if (e.attrName === 'style') {
if (e.newValue === 'block') {
alert('test!');
}
}
}, false);
setTimeout(function() {
var xxx = document.getElementById('xxx');
xxx.style.display = 'block';
console.log(xxx);
}, 5000);
您正在使用哪種瀏覽器?另外,你真的需要跟蹤嗎?這種東西很貴。但是如果你真的需要這樣做,請嘗試[Mutation Observers](https://developer.mozilla.org/en-US/docs/DOM/MutationObserver)。您正在使用的「突變事件」已被棄用。並且突變「事件」和「觀察者」apis都有瀏覽器兼容性問題。 – bfavaretto
@bfavaretto我正在與鉻合作。這是我知道檢查這種事情的唯一方法。如果你有更好的解決方案,我不會介意探索它。 –
從[MDN(https://developer.mozilla.org/en-US/docs/DOM/Mutation_events):「WebKit的不支持DOMAttrModified(見[WebKit的漏洞8191](HTTPS://bugs.webkit。 org/show_bug.cgi?id = 8191)和[解決方法](http://about.silkapp.com/page/Mutation%20Events:%20What%20Happen))「 – bfavaretto