Установка переменной в наблюдателе мутации приводит к сбою Mozilla - PullRequest
0 голосов
/ 04 августа 2020

Я настраиваю наблюдатель мутаций для веб-страницы, и в его обратном вызове я устанавливаю переменную на 0, это приводит к зависанию mozilla firefox. Между прочим, этого не происходит на chrome: Javascript.

var totalPrice = document.querySelector(".totalPrice");
function mutationCallback(mList, observer){
    var ii = document.querySelector(".item");
    prices = document.querySelectorAll(".priceInfo");
    let tPrice = 0.0;
    prices.forEach((pric, index, array)=>{
        tPrice += parseFloat(pric.textContent) * parseFloat(pric.parentNode.children[1].children[0].value);
    })
    totalPrice.textContent = tPrice.toString();
    console.log(tPrice)
};

, но как только я удаляю строку tPrice = 0, она работает нормально. Я также попытался установить let tPrice = 0.0 перед mutationCallback, и это продолжается.

Я видел здесь ответ: https://bugzilla.mozilla.org/show_bug.cgi?id=1395767, предлагающий использовать takeRecords (), но с веб-сайта разработчика Mozilla, takeRecords () используется, когда пришло время прекратить наблюдение за DOM https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver/takeRecords

Но в моем случае DOM нужно соблюдать всегда. Как мне это исправить, пожалуйста

ТАКЖЕ

Просто попытался изменить totalPrice.textContent = tp.toString() на totalPrice.id = tp.toString(), и он меняет его идентификатор без сбоев.

...