Om funksjonen
Formål
Genererer QR-koder fra tekst uten eksternt bibliotek: egen koding, feilretting og maskevalg etter ISO/IEC 18004. Funksjonen er domenenøytral for alle steder som trenger en skannbar kode for tekst eller URL.
Egner seg for
- Generering av ferdig SVG for korte URL-er og andre tekststrenger, eller
generateQrMatrix(...)når samme kode skal rendres på annen måte.
Egner seg ikke for
- Ikke for valgbar feilretting, alfanumerisk eller kanji-optimalisering, egne farger/logoer eller svært lange payloads. Implementasjonen er avgrenset til byte-modus, feilrettingsnivå M og data som får plass i versjon 1-40.
Signatur(er)
generateQrMatrix(text: string) => boolean[][]
| Parameter | Type | Beskrivelse |
|---|---|---|
text | string | Teksten som skal kodes inn i QR-koden. |
Returnerer: Den rå modulmatrisen (true/false per rute) for text, uten presentasjonslogikk. Velger automatisk minste QR-versjon som har plass, bruker byte-modus og feilrettingsnivå M, og velger maskemønsteret med lavest total straff blant de 8 standardmaskene.
Kaster: RangeError - Hvis teksten overstiger 65535 byte i byte-modus.
Kaster: RangeError - Hvis teksten er for lang til å få plass i QR-versjon 40 med feilrettingsnivå M.
import {generateQrMatrix} from "/designsystem/funksjoner/generering/qr-kode/qr-kode.js";
const matrix = generateQrMatrix("https://eksempel.no/rom/AB12");
generateQrSvg(text: string) => string
| Parameter | Type | Beskrivelse |
|---|---|---|
text | string | Teksten som skal kodes inn i QR-koden. |
Returnerer: En komplett SVG-markup-streng for text, klar til å settes inn med innerHTML eller insertAdjacentHTML.
Kaster: RangeError - Hvis teksten overstiger 65535 byte i byte-modus.
Kaster: RangeError - Hvis teksten er for lang til å få plass i QR-versjon 40 med feilrettingsnivå M.
import {generateQrSvg} from "/designsystem/funksjoner/generering/qr-kode/qr-kode.js";
container.innerHTML = generateQrSvg("https://eksempel.no/rom/AB12");
// Intern struktur:
// - qr-kode.js - offentlig API (`generateQrMatrix`/`generateQrSvg`), orkestrerer de andre modulene.
// - matrise.js - modul-/finder-/juster-/versjonsmønstre, selve matrise-oppsettet og databit-plassering.
// - reed-solomon.js - feilrettingskodeord, Galois-felt-aritmetikk.
// - masking.js - de 8 maskemønstrene + straffberegning.
// - bit-buffer.js - små bit-nivå-hjelpere (`addBits`/`getBit`).
Prøv selv
Rediger uttrykket under - returverdien oppdateres live.
Tilgjengelighet
Ikke relevant: ren logikk uten DOM eller UI.
Referanser
Se også:
../../nettverk/absolutt-url/index.html - Nyttig når en relativ lenke må normaliseres til absolutt URL før den kodes inn i QR-en.../../sikkerhet/escape-html/index.html - Relevant når QR-SVG settes inn sammen med annen, brukerstyrt tekst i samme HTML-fragment.
Brukes av:
slides/komponenter/slide-nav/relay.js (QR-kode for presenter-lenken)
Avhengigheter: ./bit-buffer.js, ./reed-solomon.js, ./matrise.js, ./masking.js