diff --git a/src/index.ts b/src/index.ts index 5103962..f4c6023 100644 --- a/src/index.ts +++ b/src/index.ts @@ -229,7 +229,7 @@ class QrcodeDecoder { * refer to jsqr options: https://github.com/cozmo/jsQR */ async decodeFromImage( - img: HTMLImageElement, + img: HTMLImageElement | string, options: { crossOrigin?: string } = {}, ) { let imgDom: HTMLImageElement | null = null; @@ -237,12 +237,8 @@ class QrcodeDecoder { ...this.defaultOption, ...options, }; - if (+img.nodeType > 0) { - if (!img.src) { - throw new Error('The ImageElement must contain a src'); - } - imgDom = img; - } else if (typeof img === 'string') { + + if (typeof img === 'string') { imgDom = document.createElement('img'); if (options.crossOrigin) { imgDom.crossOrigin = options.crossOrigin; @@ -253,6 +249,11 @@ class QrcodeDecoder { imgDom!.onload = () => resolve(true); }); await proms(); + } else if (+img.nodeType > 0) { + if (!img.src) { + throw new Error('The ImageElement must contain a src'); + } + imgDom = img; } let code = null;