Запись о мутации: свойство oldValue
Базовая Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Свойство MutationRecord только для чтения oldValue содержит данные символов или значение атрибута наблюдаемого узла до его изменения.
Значение
Строка, представляющая старое значение изменённого атрибута, если:
- параметр
attributeOldValueдляMutationObserver.observe()имеет значениеtrue - параметр
attributesдляMutationObserver.observe()имеет значениеtrueили опущен - тип мутации
typeравенattributes.
Строка, представляющая старое значение узла CharacterData, который был изменён, если:
- параметр
characterDataOldValueдляMutationObserver.observe()имеет значениеtrue - параметр
characterDataдляMutationObserver.observe()имеет значениеtrueили опущен - тип мутации
typeравенcharacterData.
В противном случае это свойство null.
Примеры
Показать старое значение цвета
В следующем примере есть кнопка, которая изменяет цвет элемента h1 на случайный новый цвет. Используется MutationObserver для наблюдения за целевым узлом (h1) на изменения атрибута; при обнаружении изменения, наблюдатель вызывает функцию logOldValue().
Функция logOldValue() получает массив mutationRecords, содержащий объекты MutationRecord. Свойство oldValue объекта MutationRecord отображается затем в цвете старого значения.
HTML
<h1 id="h1" style="color: rgb(0 0 0);">Hi, Mom!</h1> <button id="changeColorButton">Change color</button> <p id="log"></p>
JavaScript
const h1 = document.getElementById("h1");
const changeValueButton = document.getElementById("changeColorButton");
const log = document.getElementById("log");
changeColorButton.addEventListener("click", () => {
// Random 6 character hexadecimal number to use as the hex color value
const newColor = Math.floor(Math.random() * 16777215).toString(16);
h1.style.color = `#${newColor}`;
});
function logOldValue(mutationRecordArray) {
for (const record of mutationRecordArray) {
log.textContent = `Old value: ${record.oldValue}`;
log.style.cssText = record.oldValue;
}
}
const observer = new MutationObserver(logOldValue);
observer.observe(h1, {
attributes: true,
attributeOldValue: true,
});
Результат
Спецификации
| Спецификация |
|---|
| DOM # ref-for-dom-mutationrecord-oldvalue② |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
oldValue |
16 | 12 | 14 | 15 | 7 | 18 | 14 | 14 | 7 | 1.0 | 4.4 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/MutationRecord/oldValue