11const wrapper = document . querySelector ( ".generator" ) ,
22 qrInput = wrapper . querySelector ( ".form input" ) ,
33 generateBtn = wrapper . querySelector ( ".form button" ) ,
4- qrImg = wrapper . querySelector ( ".qr-code img" ) ;
4+ qrImg = wrapper . querySelector ( ".qr-code img" ) ,
5+ downloadBtn = wrapper . querySelector ( ".btnpng" ) ,
6+ sharebtn = wrapper . querySelector ( ".btnshare" ) ;
57let preValue ;
68
79generateBtn . addEventListener ( "click" , ( ) => {
@@ -13,6 +15,8 @@ generateBtn.addEventListener("click", () => {
1315 qrImg . addEventListener ( "load" , ( ) => {
1416 wrapper . classList . add ( "active" ) ;
1517 generateBtn . innerText = "Generate QR Code" ;
18+ downloadBtn . style . display = "block" ;
19+
1620 } ) ;
1721} ) ;
1822
@@ -21,4 +25,33 @@ qrInput.addEventListener("keyup", () => {
2125 wrapper . classList . remove ( "active" ) ;
2226 preValue = "" ;
2327 }
24- } ) ;
28+ } ) ;
29+ downloadBtn . addEventListener ( 'click' , async ( ) => {
30+ const response = await fetch ( qrImg . src ) ;
31+ const blob = await response . blob ( ) ;
32+ const url = URL . createObjectURL ( blob ) ;
33+ const link = document . createElement ( 'a' ) ;
34+ link . href = url ;
35+ link . download = "qr.png" ;
36+ link . click ( ) ;
37+ URL . revokeObjectURL ( url ) ;
38+ } )
39+ sharebtn . addEventListener ( 'click' , ( ) =>
40+ {
41+ if ( navigator . share ) {
42+ navigator . share ( {
43+ title : "QR Code" ,
44+ url : qrImg . src
45+ } )
46+ . then ( function ( )
47+ {
48+ console . log ( "QR code shared successfully" ) ;
49+ } )
50+ . catch ( function ( error ) {
51+ console . error ( "Error sharing QR code:" , error ) ;
52+ } ) ;
53+ }
54+ else {
55+ console . log ( "Sharing not supported in this browser." ) ;
56+ }
57+ } )
0 commit comments