как обнаружить изменение значения div (Django) с MutationObserver - PullRequest
0 голосов
/ 24 декабря 2018

Я передаю значение из бэкэнда django во внешний интерфейс, и я пытаюсь обнаружить изменение значения div с помощью MutationObserver.Ниже приведен мой текущий код: MutationObserver part:

window.addEventListener('load', function () {
          var element = document.getElementById('myTaskList');

          var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
          var observer = new MutationObserver(myFunction);
          observer.observe(element, {
            childList: true
          });

          function myFunction() {

            console.log("this is a trial")
            console.log(element);
            console.log(element.innerHTML);
          }

          // setTimeout(function(){
          //   element.innerHTML = 'Hello World!';
          // }, 1000);
          //
          // setTimeout(function(){
          //   element.innerHTML = 'Hello Space!';
          // }, 2000);
        });

html part:

<div hidden id="myTaskList">{{resultList | safe}}</div>

Я передаю строку "dummyValue" в div, но просто не вижу значенияиз операторов console.log () внутри функции.

это работает хорошо, когда я раскомментирую функции setTimeout.

Спасибо за любую помощь в том, почему MutationObserver не обнаруживает визуализированное значение div

1 Ответ

0 голосов
/ 25 декабря 2018

Я наконец выяснил причину.Надеюсь, что это может быть полезно для людей, имеющих подобные проблемы в будущем.

Итак, в основном я использовал кнопку отправки формы Django, чтобы выполнять два действия одновременно: 1. отправлять данные в представление и обрабатывать данные в представлении;2. вызвать другую функцию с помощью действия щелчка через Ajax.

Второе действие было заблокировано первым действием, и я смог получить результат только из действия 1.

Мое решение: Iизмененное действие 1 для использования Ajax.Как я упоминал выше, я первоначально использовал форму Django для отправки данных.Я запускаю действие 2 внутри функции успеха действия 1. Теперь все работает хорошо.

...