MutationObserver.takeRecords() - Web API 接口参考 编辑

MutationObservertakeRecords() 方法返回已检测到但尚未由观察者的回调函数处理的所有匹配DOM更改的列表,使变更队列保持为空。 此方法最常见的使用场景是在断开观察者之前立即获取所有未处理的更改记录,以便在停止观察者时可以处理任何未处理的更改。

    语法

    mutationRecords = mutationObserver.takeRecords()
    

    参数

    无。

    返回值

    返回一个MutationRecord 对象列表,每个对象都描述了应用于DOM树某部分的一次改动。

    注意: 调用takeRecords()后,已发生但未传递给回调的变更队列将保留为空。

    示例

    下面的示例展示了在断开观察者之前如何通过调用takeRecords()来处理任何未传递的MutationRecord

    var targetNode = document.querySelector("#someElement");
    var observerOptions = {
      childList: true,
      attributes: true
    }
    
    var observer = new MutationObserver(callback);
    observer.observe(targetNode, observerOptions);
    
    /* ...later, when it's time to stop observing... */
    
    /* handle any still-pending mutations */
    
    var mutations = observer.takeRecords();
    
    if (mutations) {
      callback(mutations);
    }
    
    observer.disconnect();
    

    代码中第12-17行抓取了所有未处理的变更记录,然后调用回调,并将变更记录列表传递给回调,以保证所有变更记录都被处理。这是在调用disconnect()之前完成的,以便停止观察DOM。 

    规范

    规范状态批注
    DOM
    MutationObserver.takeRecords()
    Living Standard 

    浏览器兼容性

    BCD tables only load in the browser

    The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
    列表为空,暂无数据

    词条统计

    浏览:91 次

    字数:3193

    最后编辑:7年前

    编辑次数:0 次

      我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
      原文