qrcodejs2官方文档中没有给出回调或者通知用户什么时候二维码生成完毕,调研之后,此次用到了MutationObserver。

MutationObserver

MutationObserver接口提供了监视对DOM树所做更改的能力。它被设计为旧的Mutation Events功能的替代品,该功能是DOM3 Events规范的一部分。

构造函数

MutationObserver()

创建并返回一个新的 MutationObserver ,它会在指定的DOM发生变化时被调用。

方法

disconnect()

阻止 MutationObserver 实例继续接收的通知,直到再次调用其observe()方法,该观察者对象包含的回调函数都不会再被调用。

observe()

配置MutationObserver在DOM更改匹配给定选项时,通过其回调函数开始接收通知。

takeRecords()

从MutationObserver的通知队列中删除所有待处理的通知,并将它们返回到MutationRecord对象的新Array中。

代码示例:

const qrcodeImg = document.querySelector('#' + id + ' canvas+img');
const observeConfig = { attributes: true };
const observeCb = function(mutationsList, observer) {mutationsList.forEach(function(mutation) {if (mutation.type.toLowerCase() === 'attributes' &&mutation.attributeName.toLowerCase() === 'src') {// console.log('qrcodeImg src done!', mutation.target.src)observer.disconnect()} else {const bmLoginUser = window.userInfo && window.userInfo.bmLoginUser || {};window.Owl && window.Owl.addError({name: '聚合配送-配送点管理-分餐箱管理:二维码生成出错',msg: `错误信息:qrcodejs2中new QRCode出错`}, {level: 'warn',tags: {...bmLoginUser}});}})
};if (typeof MutationObserver !== 'undefined') {const observer = new MutationObserver(observeCb);observer.observe(qrcodeImg, observeConfig);
}

MutationObserver监测qrcodejs2二维码生成失败相关推荐

  1. qrcodejs2二维码生成js

    <div class="qrcode" ref="qrCodeUrl"></div> <div class="rxpir ...

  2. 二维码生成 base64格式 Java

    第一步, 加入pom. <!-- 二维码 --><dependency><groupId>com.google.zxing</groupId><a ...

  3. java实现二维码生成及调用打印机打印

    在开发二维码打印的过程中走过几次弯路,所以在这里特意将其记录下来留作备忘.一开始参考其他博主写的文章,有介绍通过编写JAVA后台代码来获取本地默认打印机的驱动实现打印.BUT!这样就导致在本地开发测试 ...

  4. java 二维码生成和解析

    2019独角兽企业重金招聘Python工程师标准>>> <!-- 二维码 --><dependency><groupId>com.google.z ...

  5. 支付宝支付 第五集:二维码生成工具

    支付宝支付 第五集:二维码生成工具 一.代码 目录结构 BufferedImageLuminanceSource.java package com.dzy.alipay.qrcode;import c ...

  6. vue二维码生成插件 - npm安装篇

    vue二维码生成插件 - npm安装篇 具体使用: 1. 安装: npm install vue-qr --save 2. 引入和声明 //在需要生成二维码的文件中引入比如qrCode.vue imp ...

  7. 图片下载_二维码生成

    图片下载 /*** 图片类型* @param path 图片地址* @param id uuid* @param isAspose* @return* @throws IOException*/pri ...

  8. iOS 花式二维码生成和二维码识别

    iOS 原生的二维码识别非常之棒,反正比 ZXing 和 ZBar 效果都好些,所以以后打算尽量用原生的二维码识别,然后最近把原生的二维码生成也顺便做了一遍,并且在原有基础上加了一些样式参数,封了一个 ...

  9. java二维码生成 使用SSM框架 搭建属于自己的APP二维码合成、解析、下载

    java二维码生成 使用SSM框架 搭建属于自己的APP二维码合成.解析.下载 自己用java搭建一个属于自己APP二维码合成网站.我的思路是这样的: 1.用户在前台表单提交APP的IOS和Andro ...

最新文章

  1. C++读写ini配置文件GetPrivateProfileString()WritePrivateProfileString()
  2. Vsftpd 服务的部署及优化
  3. Android中链接到百度进行搜索
  4. Nacos与Eureka的区别有哪些?
  5. ASP.NET 状态管理概览
  6. 挖掘有价值的搜索关键词
  7. EIM正在迎来自己的春天
  8. 创建应用 django
  9. 《编码规范和测试方法——C/C++版》作业 ·003——宏定义作用整理、设计删除数组元素的函数
  10. capslock键英语怎么读_改造你的CapsLock键,让你效率提升近10倍!
  11. 滴滴出行高并发高性能的分布式架构设计之道
  12. 如何解决终端图标显示异常?
  13. 部署Extmail邮件系统需注意几点
  14. 儒家学派有哪些代表人物?
  15. 3Dmax与BIM模型的区别
  16. 1 年原创 150+ 篇,这位前阿里 P9 牛批!
  17. 微软经典面试题(数字翻译为中文)
  18. JAVA工具类-根据身份证进行性别和年龄计算
  19. python把四个图画在一个窗口_python plt多个图在同一窗口显示方法
  20. 戴尔390计算机电源问题,DELL笔记本电脑电源适配器无电压输出故障

热门文章

  1. vivo计算机的隐藏功能教程,Vivo手机的5个隐藏功能,真的很实用,一定要打开
  2. TypeError: torch.nn.modules.batchnorm.BatchNorm2d is not a Module subclass
  3. phpmywind 常用函数 整理中……
  4. 联想电脑白屏了按哪个键可以修复?
  5. 第10章结构体01——结构体字节大小的计算
  6. 使用自定义的dns服务器,快速搭建自己的DNS服务器
  7. IE-LAB网络实验室:VPLS技术介绍
  8. Java实训—VII,VIII
  9. python 获取节假日,二十四节气,中国农历,星次、每日凶煞、每日值神、农历建除十二神、农历每日宜忌、彭祖百忌、每日五行、二十八星宿、天干地支、农历生辰八字、时辰凶吉等
  10. PHP 两个多维数组根据某个键的值进行组合排序的几种思路