1<!DOCTYPE html> 2<html lang="nl"> 3 4<head> 5 6<!-- OneTrust Cookies Consent Notice start for applebandit.nl -->
7<script type="text/javascript" src="https://cdn.cookielaw.org/consent/0192d854-6b0a-7170-98bb-76a49be04f12/OtAutoBlock.js" ></script>
vendor: 1 bytes, line 7
7
8<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-language="nl" type="text/javascript" charset="UTF-8" data-domain-script="0192d854-6b0a-7170-98bb-76a49be04f12" ></script>
vendor: 1 bytes, line 8
8
9<script type="text/javascript"> 10function OptanonWrapper() { } 11</script>
11 12<!-- OneTrust Cookies Consent Notice end for applebandit.nl --> 13 14 <meta charset="utf-8" /> 15 <meta name="description" content="Producten Apple Bandit smaken cider varianten "> 16 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 17 18 19 <!-- Google Tag Manager --> 20
20<script>
vendor: 374 bytes, line 20
20(function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', '
20GTM-KVL43GX
vendor: 3 bytes, line 20
20');
20</script>
20 21 <!-- End Google Tag Manager --> 22 23 <title>Producten - Apple Bandit</title> 24
24<script rel="preload" data-ot-ignore src="/build/runtime.bundle.js?v=HUBMfEDonEKgWcqFS1lybdSI0or_psDCGQ_ysp_hH5s"></script>
24 25
25<script rel="preload" data-ot-ignore src="/build/vendors.bundle.js?v=hkT0Zogv1Wws5QvJAwnmCPVHJKWnGr-bkY-EYIW-W4c"></script>
25 26
26<script rel="preload" data-ot-ignore src="/build/main.bundle.js?v=ZRym6LROjTcG2t7AmzFtOBgZLlDLq8GX04mO3zhtAAI"></script>
26 27 28 <link rel="stylesheet" href="/assets/lib/icofont/icofont.min.css" /> 29 <link rel="stylesheet" href="/build/default.css" /> 30 <link rel="stylesheet" href="/build/main.css" /> 31 <link rel="stylesheet" href="/custom.css" /> 32 33 <link rel="icon" type="image/png" href="//images.ctfassets.net/6shvnfgwlq46/7GNwTlUyu2x6EhMkCfL5dB/2869aca55c1d380463b4f45fdbbd9c3c/apple-bandit-logo__1_.png" /> 34 35
35<script> 36 var ageGateWayClientSide = true; 37 var ageGateWayWebshop = null; 38 var ageGateWayLegalDrinkingAge = 18; 39 40 (function () { 41 var referalBypass = ({})[window.location.pathname]; 42 var whitelist = ["/geniet-verantwoord"]; 43 44 var pages = {"/jillz":"/age-gate-jillz","/":"/agegate"}; 45 whitelist = whitelist.concat(Object.values(pages)); 46 var base = pages['/']; 47 delete pages['/'] 48 var prefixes = Object.keys(pages); 49 50 function isAllowed() { 51 for (var i = 0; i < whitelist.length; i++) { 52 if (window.location.pathname === whitelist[i]) { 53 return true; 54 } 55 } 56 if (/bingbot|googlebot/i.test(navigator.userAgent)) { 57 return true; 58 } 59 if (/Agecheck=passed/.test(document.cookie)) { 60 return true; 61 } 62 63 if (referalBypass && document.referrer) { 64 for (var i = 0; i < referalBypass.length; i++) { 65 if (document.referrer.indexOf(referalBypass[i]) !== -1) { 66 document.cookie = 'Agecheck=passed'; 67 return true; 68 } 69 } 70 } 71 return false; 72 } 73 if (isAllowed() === false) { 74 document.head.parentElement.classList.add('js-age-gate-redirect'); 75 for (var i = 0; i < prefixes.length; i++) { 76 var prefix = prefixes[i] 77 if (prefix === window.location.pathname.substr(0, prefix.length)) { 78 base = pages[prefix] 79 } 80 } 81 window.location.href = base + '?redirect=' + encodeURIComponent(window.location.pathname + window.location.search) 82 } 83 }()); 84 </script>
84 85</head> 86 87<body style="background-image: url('//images.ctfassets.net/6shvnfgwlq46/1nfFnbWXGWt1mHlVloW87l/c001c6b94831da7ec33a9c91b3c40660/Official_background_Apple_bandit.png');"> 88 <!-- Google Tag Manager (noscript) -->
vendor: 89 bytes, lines 88-90
88 89 <noscript> 90 <iframe src="https://www.googletagmanager.com/ns.html?id=
90GTM-KVL43GX
vendor: 120 bytes, lines 90-93
90" height="0" width="0" 91 style="display:none;visibility:hidden"></iframe> 92 </noscript> 93
93<!-- End Google Tag Manager (noscript) --> 94 95 96<nav data-id="navigation" class="navigation navigation--center"><ul class="navigation__left"><li class="navigation__item "><a href="/apple-bandit" class="navigation__link"><span>Apple Bandit</span></a></li><li class="navigation__item navigation__item--active"><a href="/producten" class="navigation__link"><span>Onze producten</span></a></li><li class="navigation__item "><a href="/wat-is-cider" class="navigation__link"><span>Wat is cider?</span></a></li></ul> 97 <div class="logo"><a href="/"><picture><source media="(min-width: 1024px)" srcset="//images.ctfassets.net/6shvnfgwlq46/19ZsvE0knKGwo4xaSBqCfQ/09f2d1503f9b7a4245cffcc8e67c9181/applebandit-padding.png?w=1920" /> 98 <source media="(min-width: 480px)" srcset="//images.ctfassets.net/6shvnfgwlq46/19ZsvE0knKGwo4xaSBqCfQ/09f2d1503f9b7a4245cffcc8e67c9181/applebandit-padding.png?w=1024" /> 99 <img src="//images.ctfassets.net/6shvnfgwlq46/19ZsvE0knKGwo4xaSBqCfQ/09f2d1503f9b7a4245cffcc8e67c9181/applebandit-padding.png?w=480" loading="lazy" /></picture></a></div> 100 <ul class="navigation__right"><li class="navigation__item "><a href="/acties" class="navigation__link"><span>Acties</span></a></li><li class="navigation__item "><a href="javascript:Polly.openHelp({},event)" class="navigation__link"><span>Klantenservice</span></a></li><li class="navigation__item "><a href="https://www.heinekenhoreca.nl/horeca-assortiment/apple-bandit?utm_campaign=hnk_merkwebsite&D149utm_medium=referral&utm_source=landingspagina&utm_content=applebandit&utm_term=menu" class="navigation__link " target="_blank"><span>Voor ondernemers</span></a></li></ul><div class="language-switcher"><button class="language-switcher__button" type="button" data-id="dropdown" data-dropdown-target="language-switcher">NL</button> 101 <ul class="language-switcher__dropdown" data-dropdown-id="language-switcher"><li class="language-switcher__option language-switcher__option--nl language-switcher__option--current"><a href="/producten?lang=nl"><img width="32" height="32" src="/assets/icons/flag-nl.svg" alt="nl" />NL</a></li><li class="language-switcher__option language-switcher__option--en "><a href="/?lang=en"><img width="32" height="32" src="/assets/icons/flag-en.svg" alt="en" />EN</a></li></ul></div></nav><nav data-id="navigation-mobile" class="navigation__mobile navigation--center"><div class="logo"><a href="/"><picture><source media="(min-width: 1024px)" srcset="//images.ctfassets.net/6shvnfgwlq46/19ZsvE0knKGwo4xaSBqCfQ/09f2d1503f9b7a4245cffcc8e67c9181/applebandit-padding.png?w=1920" /> 102 <source media="(min-width: 480px)" srcset="//images.ctfassets.net/6shvnfgwlq46/19ZsvE0knKGwo4xaSBqCfQ/09f2d1503f9b7a4245cffcc8e67c9181/applebandit-padding.png?w=1024" /> 103 <img src="//images.ctfassets.net/6shvnfgwlq46/19ZsvE0knKGwo4xaSBqCfQ/09f2d1503f9b7a4245cffcc8e67c9181/applebandit-padding.png?w=480" loading="lazy" /></picture></a></div> 104 <div class="navigation__mobile__list"><ul><li class="navigation__item "><a href="/apple-bandit" class="navigation__link"><span>Apple Bandit</span></a></li><li class="navigation__item navigation__item--active"><a href="/producten" class="navigation__link"><span>Onze producten</span></a></li><li class="navigation__item "><a href="/wat-is-cider" class="navigation__link"><span>Wat is cider?</span></a></li><li class="navigation__item "><a href="/acties" class="navigation__link"><span>Acties</span></a></li><li class="navigation__item "><a href="javascript:Polly.openHelp({},event)" class="navigation__link"><span>Klantenservice</span></a></li><li class="navigation__item "><a href="https://www.heinekenhoreca.nl/horeca-assortiment/apple-bandit?utm_campaign=hnk_merkwebsite&D149utm_medium=referral&utm_source=landingspagina&utm_content=applebandit&utm_term=menu" class="navigation__link " target="_blank"><span>Voor ondernemers</span></a></li></ul></div> 105 <div class="navigation__mobile__actions"><span data-id="navigation-toggle" class="icon"></span></div></nav><div class="push"></div> 106 107<main role="main"><div class="page" style="background-image: url('//images.ctfassets.net/6shvnfgwlq46/1nfFnbWXGWt1mHlVloW87l/c001c6b94831da7ec33a9c91b3c40660/Official_background_Apple_bandit.png');"> 108 <section data-id="6IHS2T7FYdFtH05hanTsW0" class="section section--slider"><div class="slider__background" style="background-image: url(//images.ctfassets.net/6shvnfgwlq46/6kYyoLXu2RPuQjQSvSdp3H/c27def7607ed171b0ac569845e115b15/links_appel_1.png);"><h2 class="title slider__title theme--unknown">Onze producten</h2> 109 110 <div data-id="slider" data-style="Carousel" class="slider swiper-container theme--unknown"><div class="slider__wrapper swiper-wrapper"><div class="slider__slide swiper-slide"><div class="content-item "><div class="content-item__content-wrapper"><div class="content-item__image-wrapper"><picture><source media="(min-width: 1024px)" srcset="//images.ctfassets.net/6shvnfgwlq46/27gXCY52aEIQmien29uVzt/ef38cf791fec54e1ec56f7d1c69ddd72/114SB1179_AB_combi_visuals_fruitart_Juicy_Apple_HR.png?w=1920" /> 111 <source media="(min-width: 480px)" srcset="//images.ctfassets.net/6shvnfgwlq46/27gXCY52aEIQmien29uVzt/ef38cf791fec54e1ec56f7d1c69ddd72/114SB1179_AB_combi_visuals_fruitart_Juicy_Apple_HR.png?w=1024" /> 112 <img class="content-item__image swiper-lazy" src="//images.ctfassets.net/6shvnfgwlq46/27gXCY52aEIQmien29uVzt/ef38cf791fec54e1ec56f7d1c69ddd72/114SB1179_AB_combi_visuals_fruitart_Juicy_Apple_HR.png?w=480" loading="lazy" /></picture></div><div class="content-item__body"><h3 class="title title--tertiary content-item__title">Juicy Apple</h3><div class="content-item__html"><p>Apple Bandit Juicy Apple is een frisse appelcider met een zachte fruitige smaak</p> 113</div><div class="content-item__actions"><ul><li><a href="/productinformatie" class="button theme--secondary"><span>Productinformatie</span></a></li></ul></div></div></div></div> 114 <div class="swiper-lazy-preloader"></div></div><div class="slider__slide swiper-slide"><div class="content-item "><div class="content-item__content-wrapper"><div class="content-item__image-wrapper"><picture><source media="(min-width: 1024px)" srcset="//images.ctfassets.net/6shvnfgwlq46/NRMB6NPjmGvjG6rUtjNq2/22b8fb35088e6fc2b9efc571d2a7c70a/114SB1179_AB_combi_visuals_fruitart_Juicy_Apple_00_HR.png?w=1920" /> 115 <source media="(min-width: 480px)" srcset="//images.ctfassets.net/6shvnfgwlq46/NRMB6NPjmGvjG6rUtjNq2/22b8fb35088e6fc2b9efc571d2a7c70a/114SB1179_AB_combi_visuals_fruitart_Juicy_Apple_00_HR.png?w=1024" /> 116 <img class="content-item__image swiper-lazy" src="//images.ctfassets.net/6shvnfgwlq46/NRMB6NPjmGvjG6rUtjNq2/22b8fb35088e6fc2b9efc571d2a7c70a/114SB1179_AB_combi_visuals_fruitart_Juicy_Apple_00_HR.png?w=480" alt="" loading="lazy" /></picture></div><div class="content-item__body"><h3 class="title title--tertiary content-item__title">Juicy Apple 0.0%</h3><div class="content-item__html"><p>Apple Bandit 0.0% is een frisse alcoholvrije appelcider met een zachte, fruitige smaak.</p> 117</div><div class="content-item__actions"><ul><li><a href="/productinformatie-apple-bandit-juicy-apple-0-0" class="button theme--secondary"><span>Productinformatie</span></a></li></ul></div></div></div></div> 118 <div class="swiper-lazy-preloader"></div></div><div class="slider__slide swiper-slide"><div class="content-item "><div class="content-item__content-wrapper"><div class="content-item__image-wrapper"><picture><source media="(min-width: 1024px)" srcset="//images.ctfassets.net/6shvnfgwlq46/3GJNnoE1l197uYLs3QTdfc/eb0e31e0d23366deb626152e2a5e7d7b/114SB1179_AB_combi_visuals_fruitart_Classic_Apple_HR.png?w=1920" /> 119 <source media="(min-width: 480px)" srcset="//images.ctfassets.net/6shvnfgwlq46/3GJNnoE1l197uYLs3QTdfc/eb0e31e0d23366deb626152e2a5e7d7b/114SB1179_AB_combi_visuals_fruitart_Classic_Apple_HR.png?w=1024" /> 120 <img class="content-item__image swiper-lazy" src="//images.ctfassets.net/6shvnfgwlq46/3GJNnoE1l197uYLs3QTdfc/eb0e31e0d23366deb626152e2a5e7d7b/114SB1179_AB_combi_visuals_fruitart_Classic_Apple_HR.png?w=480" loading="lazy" /></picture></div><div class="content-item__body"><h3 class="title title--tertiary content-item__title">Classic apple</h3><div class="content-item__html"><p>Apple Bandit Classic Apple is een frisse appelcider met een natuurlijke, lichtdroge smaak</p> 121</div><div class="content-item__actions"><ul><li><a href="/product-informatie-classic-apple" class="button theme--secondary"><span>Productinformatie</span></a></li></ul></div></div></div></div> 122 <div class="swiper-lazy-preloader"></div></div><div class="slider__slide swiper-slide"><div class="content-item "><div class="content-item__content-wrapper"><div class="content-item__image-wrapper"><picture><source media="(min-width: 1024px)" srcset="//images.ctfassets.net/6shvnfgwlq46/37JbaOnXdwCvzaxsJZMwsk/cb5bd3a6a382e396b1893be71ae8f42d/114SB1179_AB_combi_visuals_fruitart_Raspberry_HR.png?w=1920" /> 123 <source media="(min-width: 480px)" srcset="//images.ctfassets.net/6shvnfgwlq46/37JbaOnXdwCvzaxsJZMwsk/cb5bd3a6a382e396b1893be71ae8f42d/114SB1179_AB_combi_visuals_fruitart_Raspberry_HR.png?w=1024" /> 124 <img class="content-item__image swiper-lazy" src="//images.ctfassets.net/6shvnfgwlq46/37JbaOnXdwCvzaxsJZMwsk/cb5bd3a6a382e396b1893be71ae8f42d/114SB1179_AB_combi_visuals_fruitart_Raspberry_HR.png?w=480" alt="" loading="lazy" /></picture></div><div class="content-item__body"><h3 class="title title--tertiary content-item__title">Raspberry</h3><div class="content-item__html"><p>Apple Bandit Raspberry is een frisse cider met de friszoete smaak van framboos.</p> 125</div><div class="content-item__actions"><ul><li><a href="/productinformatie-apple-bandit-raspberry" class="button theme--secondary"><span>Productinformatie</span></a></li></ul></div></div></div></div> 126 <div class="swiper-lazy-preloader"></div></div><div class="slider__slide swiper-slide"><div class="content-item "><div class="content-item__content-wrapper"><div class="content-item__image-wrapper"><picture><source media="(min-width: 1024px)" srcset="//images.ctfassets.net/6shvnfgwlq46/4t8Qa3ep3SljW4KFALPw2A/e9b675615279d3b670deb020b7772f12/20liter_applibandit.png?w=1920" /> 127 <source media="(min-width: 480px)" srcset="//images.ctfassets.net/6shvnfgwlq46/4t8Qa3ep3SljW4KFALPw2A/e9b675615279d3b670deb020b7772f12/20liter_applibandit.png?w=1024" /> 128 <img class="content-item__image swiper-lazy" src="//images.ctfassets.net/6shvnfgwlq46/4t8Qa3ep3SljW4KFALPw2A/e9b675615279d3b670deb020b7772f12/20liter_applibandit.png?w=480" alt="" loading="lazy" /></picture></div><div class="content-item__body"><h3 class="title title--tertiary content-item__title">Juicy Apple fust</h3><div class="content-item__html"><p>Apple Bandit Juicy Apple is een frisse appelcider, ook op fust beschikbaar</p> 129</div><div class="content-item__actions"><ul><li><a href="https://www.heinekenhoreca.nl/horeca-assortiment/apple-bandit?utm_campaign=hnk_merkwebsite&D149utm_medium=referral&utm_source=landingspagina&utm_content=applebandit&utm_term=producten " class="button theme--tertiary " target="_blank"><span>Meer weten?</span></a></li></ul></div></div></div></div> 130 <div class="swiper-lazy-preloader"></div></div></div> 131 <div class="swiper-pagination"></div> 132 133 <div class="slider__navigation slider__navigation--prev"><span class="icon icofont-arrow-left"></span></div> 134 135 <div class="slider__navigation slider__navigation--next"><span class="icon icofont-arrow-right"></span></div></div></div></section><section data-id="2iJsMQ7ODO1XjfMCAG1r8L" class="section section--text"><div class="text__background theme--primary" style="background-image: url();"><div class="text text--CenteredParagraphs"><h2 class="title text__title">Koop Applebandit online bij de volgende winkels:</h2> 136 137 <ul class="text__nav"><li class="text__nav__item"><a href="https://www.ah.nl/zoeken?query=apple%20bandit" class="button theme--secondary " target="_blank"><span>Bestel bij Albert Heijn</span></a></li><li class="text__nav__item"><a href="https://www.jumbo.com/producten/bier-en-wijn/apple-bandit" class="button theme--secondary " target="_blank"><span>Bestel bij Jumbo</span></a></li><li class="text__nav__item"><a href="https://www.plus.nl/producten/wijn-bier-sterke-drank?merk=Apple%20Bandit" class="button theme--secondary " target="_blank"><span>Bestel bij Plus</span></a></li><li class="text__nav__item"><a href="https://www.hoogvliet.com/" class="button theme--secondary " target="_blank"><span>Bestel bij Hoogvliet</span></a></li></ul></div></div></section><section data-id="2w0zIJOB1jtLZITPhrSpXG" class="section section--system"><div class="system theme--unknown"><iframe src="https://dm.hnlmail.nl/lp/blijf-op-de-hoogte5" width="100%" height="800" frameborder="0" allowtransparency="true"></iframe></div></section><section data-id="1wwOqwDYMdlq2HjXlsSw3B" class="section section--system"><div class="system theme--unknown"><style>html .text__background.theme--primary a {color: white;} html .section--text .text__background { padding: 2rem;} .text__nav__item+.text__nav__item {margin-top: 0;} li.text__nav__item {margin-right: 6px; margin-bottom: 6px;} @media only screen and (min-width: 800px) { .section--text .text__nav{display: flex; justify-content: center;}}</style></div></section></div></main><footer class="footer footer--CompactNoLogo">
137<div class="footer__container"><div class="footer__section"><div class="footer__social"></div></div> 138 139 <div class="footer__section footer__section--menu"><ul class="footer__menu"><li class="footer__menu__item"><a href="https://www.heinekennederland.nl/privacy" class="navigation__link " target="_blank"><span>Privacyverklaring</span></a></li><li class="footer__menu__item"><a href="https://www.heinekennederland.nl/cookie-policy" class="navigation__link " target="_blank"><span>Cookiebeleid</span></a></li><li class="footer__menu__item"><a href="/geniet-verantwoord" class="navigation__link"><span>Geniet verantwoord</span></a></li><li class="footer__menu__item"><a href="javascript:Polly.openHelp({},event)" class="navigation__link"><span>Klantenservice</span></a></li><li class="footer__menu__item"><a class="navigation__link"><span>Copyright 2025</span></a></li><li class="footer__menu__item"><a href="https://www.heinekenhoreca.nl/horeca-assortiment/apple-bandit?utm_campaign=hnk_merkwebsite&D149utm_medium=referral&utm_source=landingspagina&utm_content=applebandit&utm_term=footer" class="navigation__link " target="_blank"><span>Apple Bandit voor ondernemers</span></a></li><li class="footer__menu__item"><a href="/ugc-policy" class="navigation__link"><span>UGC Policy</span></a></li></ul></div></div></footer><div class="modal" data-id="modal-raas" aria-hidden="true"><div class="modal__outer" tabindex="-1" data-modal-close><div class="modal__inner" role="dialog" aria-modal="true" aria-labelledby="modal-raas-title"><header class="modal__header"><h2 id="modal-raas-title" class="title title--secondary modal__title">Koop hier</h2> 140 <h3 class="title title--tertiary modal__sub-title">Verkrijgbaar bij de volgende supermarkten:</h3> 141 <span class="icon icofont-close-line" data-modal-close></span></header> 142 143 <div class="modal__content" data-modal-content></div></div></div></div> 144
145<script> 146 147 let timeout = null; 148 149 function triggerValidation() { 150 clearTimeout(timeout); 151 152 timeout = setTimeout(() => { 153 validateAddress(); 154 }, 1000); 155 } 156 157 function validateAddress() { 158 let postcode = document.getElementById('contact-zipcode').value; 159 let houseNumber = document.getElementById('contact-housenumber').value; 160 let street = document.getElementById('contact-street'); 161 let city = document.getElementById('contact-city'); 162 163 if ((/^\d{4}\s?[A-Za-z]{2}$/.test(postcode)) 164 && (/^\d+$/.test(houseNumber))) { 165 166 emptyAddress(); 167 fetch(`api/address/${postcode}/${houseNumber}`, { 168 method: 'GET' 169 }) 170 .then(response => response.json()) 171 .then(data => { 172 if (data !== null) { 173 street.value = data.streetName ?? ""; 174 city.value = data.city ?? ""; 175 } 176 }) 177 } else if ((postcode === '' || postcode === null) 178 || (houseNumber === '' || houseNumber === null)) { 179 street.placeholder = 'Straat'; 180 city.placeholder = 'Woonplaats'; 181 } else { 182 emptyAddress(); 183 } 184 } 185 186 function emptyAddress() { 187 let street = document.getElementById('contact-street'); 188 let city = document.getElementById('contact-city'); 189 190 street.value = ''; 191 street.placeholder = ''; 192 city.value = ''; 193 city.placeholder = ''; 194 } 195</script>
195 196
197<script type="text/javascript"> 198 function checkFiles(files, elementName) { 199 const MAX_FILES = 3; 200 const MAX_TOTAL_SIZE_MB = 10 * 1024 * 1024; // 10 MB in bytes 201 const list = new DataTransfer(); 202 let totalSize = 0; 203 const submitBtn = document.getElementById('input__sendButton'); 204 const sizeErrorText = 'Er is een maximum van 10mb toegestaan. Verwijder bestanden om te voldoen aan de uploadeisen.'; 205 const fileAmountErrorText = 'Er is een maximum van 3 bestanden toegestaan. De eerste 3 bestanden zijn geselecteerd mits deze voldoen aan de eisen van de bestandsgrootte.'; 206 const fileSizeExceededText = 'De bestanden zijn geselecteerd maar niet allemaal toegevoegd omdat het totale bestandsgrootte limiet van 10mb is overschreden.'; 207 let hasSizeError = false; 208 let hasFileAmountError = false; 209 let hasFileSizeExceeded = false; 210 211 // Handle file selection based on file amount and size limits 212 for (let i = 0; i < files.length; i++) { 213 const file = files[i]; 214 if (list.items.length < MAX_FILES && (totalSize + file.size) <= MAX_TOTAL_SIZE_MB) { 215 list.items.add(file); 216 totalSize += file.size; 217 } else if ((totalSize + file.size) > MAX_TOTAL_SIZE_MB) { 218 hasFileSizeExceeded = true; 219 } 220 } 221 222 // Check if the final total size still exceeds the limit 223 if (totalSize > MAX_TOTAL_SIZE_MB) { 224 hasSizeError = true; 225 submitBtn.disabled = true; 226 } else { 227 submitBtn.disabled = false; 228 } 229 230 // Update the file input with the selected files 231 document.getElementById(elementName).files = list.files; 232 233 // Error message handling 234 const errorMessageElement = document.getElementById('files-error'); 235 if (hasSizeError && hasFileAmountError) { 236 errorMessageElement.innerHTML = fileAmountErrorText; 237 console.error('Both file amount and file size exceed the allowed limits.'); 238 } else if (hasSizeError) { 239 errorMessageElement.innerHTML = sizeErrorText; 240 console.error('Total file size exceeds the allowed 10MB limit.'); 241 } else if (hasFileAmountError) { 242 errorMessageElement.innerHTML = fileAmountErrorText; 243 console.error('File amount exceeds the allowed limit of 3.'); 244 } else if (hasFileSizeExceeded) { 245 errorMessageElement.innerHTML = fileSizeExceededText; 246 console.warn('Some files were skipped because they would exceed the 10MB limit.'); 247 } else { 248 errorMessageElement.innerHTML = ''; 249 console.log('Files are within the allowed limits.'); 250 } 251 252 // File preview handling 253 const preview = document.getElementById('filename-preview'); 254 preview.innerHTML = ''; 255 for (let i = 0; i < list.files.length; i++) { 256 const file = list.files[i]; 257 const reader = new FileReader(); 258 reader.onload = function (e) { 259 const img = document.createElement('img'); 260 img.classList.add('filename-preview__image'); 261 img.src = e.target.result; 262 preview.appendChild(img); 263 } 264 reader.readAsDataURL(file); 265 } 266 } 267</script>
267 268 269 270 271</body> 272 273</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.