如何使用MutationObserver

时间:2018-12-24 07:58:09

标签: html django render mutation

我正在渲染从Django后端到前端的值,并且试图通过MutationObserver检测div值的变化。下面是我当前的代码: MutationObserver部分:

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部分:

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

我正在向div渲染字符串“ dummyValue”,但只是看不到函数内部console.log()语句中的值。

当我取消注释setTimeout函数时,此方法效果很好。

感谢您对MutationObserver为什么无法检测到呈现的div值的任何帮助

1 个答案:

答案 0 :(得分:0)

我终于弄清楚了原因。希望这对将来遇到类似问题的人有所帮助。

因此,基本上,我使用Django表单提交按钮一次执行两项操作:    1.向视图提交数据并在视图中处理数据;    2.通过点击动作触发另一个功能       阿贾克斯。

第二个动作被第一个动作阻止,我只能从动作1中获得结果。

我的解决方案:我将操作1修改为也使用Ajax。如上所述,我最初使用Django表单提交数据。我在动作1的成功功能内触发了动作2。现在一切正常。