1<!DOCTYPE html><html class="no-js" lang="zh-TW" prefix="og: https://ogp.me/ns# fb: https://ogp.me/ns/fb# website: https://ogp.me/ns/website#"> <head> <base href="https://www.zakka.com.tw/" /> <meta charset="utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" /> <meta http-equiv='x-dns-prefetch-control' content='on'> <meta name="author" content="Zakkaé貨網"> <meta name="copyright" content="ææ°æ¶æ¯"> <meta name="google" content="notranslate" /> <meta name="mobile-web-app-capable" content="yes"> <meta name="theme-color" content="#f5f5f5"> <link rel="preconnect" href="//cdn.qdm.cloud" /> <link rel="preconnect" href="//image-cdn-flare.qdm.cloud" /> <link rel="preconnect" href="//image-cdn.qdm.cloud" /> <link rel="preconnect" href="//www.facebook.com" /> <link rel="preconnect" href="//connect.facebook.net" /> <link rel="preconnect" href="//ajax.googleapis.com" /> <link rel="dns-prefetch" href="//ajax.googleapis.com" /> <link rel="dns-prefetch" href="//image-cdn-flare.qdm.cloud" /> <link rel="dns-prefetch" href="//image-cdn.qdm.cloud" /> <link rel="dns-prefetch" href="//cdn.qdm.cloud" /> <link rel="dns-prefetch" href="//fonts.googleapis.com" /> <link rel="dns-prefetch" href="//www.google-analytics.com" /> <link rel="dns-prefetch" href="//www.googletagmanager.com" /> <link rel='dns-prefetch' href="//www.google.com" /> <link rel='dns-prefetch' href="//www.google.com.tw" /> <link rel='dns-prefetch' href="//maxcdn.bootstrapcdn.com" /> <link rel='dns-prefetch' href="//cdnjs.cloudflare.com" /> <link rel='dns-prefetch' href="//www.facebook.com" /> <link rel='dns-prefetch' href="//connect.facebook.net" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title itemprop='name'>ææ°æ¶æ¯ | Zakkaé貨網</title> <meta name="description" content="Zakkaé貨網 www.zakka.com.tw 2Zakkaæ¯æ¥æè£¡ãé貨ãçææï¼é貨æè¿·äººçå°æ¹å¨æ¼è®äººå¤§å¼ç²¾éç嵿åè¨è¨ï¼ 3å¨Zakkaé貨網é¨èå¯çè¦å 滿趣å³ç嵿åç¼æï¼å°å°ç©åç«è½è®çæ´»é¨æå æ»¿ä¾¿å©æ§ï¼ 4Zakkaé貨網帶æ¨èµ°é²é貨ä¸çï¼é«é©åµä½è å°çæ´»çè§å¯åç¨å¿ï¼" /> <meta property="og:description" content="Zakkaé貨網 www.zakka.com.tw 5Zakkaæ¯æ¥æè£¡ãé貨ãçææï¼é貨æè¿·äººçå°æ¹å¨æ¼è®äººå¤§å¼ç²¾éç嵿åè¨è¨ï¼ 6å¨Zakkaé貨網é¨èå¯çè¦å 滿趣å³ç嵿åç¼æï¼å°å°ç©åç«è½è®çæ´»é¨æå æ»¿ä¾¿å©æ§ï¼ 7Zakkaé貨網帶æ¨èµ°é²é貨ä¸çï¼é«é©åµä½è å°çæ´»çè§å¯åç¨å¿ï¼" /> <link href="https://www.zakka.com.tw/information/news" rel="canonical" itemprop="url"> <!-- FACESPACE --> <meta property="fb:admins" content="100000954421338" /> <meta property="fb:app_id" content="1876518175972690" /> <meta property="og:title" content="ææ°æ¶æ¯ | Zakkaé貨網"/> <meta property="og:type" content="website"/> <meta property="og:url" content="https://www.zakka.com.tw/information/news"/> <meta property="og:locale" content="zh_TW" /> <meta property="og:image" content="https://image-cdn-flare.qdm.cloud/q6942cbf091f86/image/data/2019/12/30/8842655e6a2359787901046f09f560ed.png"/> <meta property="og:image:url" content="https://image-cdn-flare.qdm.cloud/q6942cbf091f86/image/data/2019/12/30/8842655e6a2359787901046f09f560ed.png"/> <meta property="og:site_name" content="Zakkaé貨網"> <meta property="og:updated_time" content="1790421923"> <!-- Twitter Card --> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="ææ°æ¶æ¯ | Zakkaé貨網"> <meta name="twitter:description" content="Zakkaé貨網 www.zakka.com.tw 8Zakkaæ¯æ¥æè£¡ãé貨ãçææï¼é貨æè¿·äººçå°æ¹å¨æ¼è®äººå¤§å¼ç²¾éç嵿åè¨è¨ï¼ 9å¨Zakkaé貨網é¨èå¯çè¦å 滿趣å³ç嵿åç¼æï¼å°å°ç©åç«è½è®çæ´»é¨æå æ»¿ä¾¿å©æ§ï¼ 10Zakkaé貨網帶æ¨èµ°é²é貨ä¸çï¼é«é©åµä½è å°çæ´»çè§å¯åç¨å¿ï¼"> <meta name="twitter:image" content="https://image-cdn-flare.qdm.cloud/q6942cbf091f86/image/data/2019/12/30/8842655e6a2359787901046f09f560ed.png"> <!-- llms.txt --> <link rel="llms-txt" href="/llms.txt" /> <!-- G++ --> <meta itemprop="name" content="ææ°æ¶æ¯"> <meta itemprop="description" content="Zakkaé貨網 www.zakka.com.tw 11Zakkaæ¯æ¥æè£¡ãé貨ãçææï¼é貨æè¿·äººçå°æ¹å¨æ¼è®äººå¤§å¼ç²¾éç嵿åè¨è¨ï¼ 12å¨Zakkaé貨網é¨èå¯çè¦å 滿趣å³ç嵿åç¼æï¼å°å°ç©åç«è½è®çæ´»é¨æå æ»¿ä¾¿å©æ§ï¼ 13Zakkaé貨網帶æ¨èµ°é²é貨ä¸çï¼é«é©åµä½è å°çæ´»çè§å¯åç¨å¿ï¼"> <meta itemprop="image" content="//image-cdn-flare.qdm.cloud/q6942cbf091f86/image/data/2019/12/30/8842655e6a2359787901046f09f560ed.png"> <meta name="google-site-verification" content="1E1Wu9fwyRKo-Me2h4Z8HQMPZZGmyuCQAUtYz1Cb4SY" /> <meta name="msvalidate.01" content="3DDB89ED7169D98448A4A201B1E2020A" /> <link title='ææ°æ¶æ¯ - è¨é±ååå¿«è¨RSS' href="https://www.zakka.com.tw/googlebase.xml" type='application/rss+xml' rel='alternate' > <!-- Google's Sitelinks Search -->
13<script type="application/ld+json"> 14 { 15 "@context": "https://schema.org", 16 "@type": "WebSite", 17 "name" : "Zakkaé貨網", 18 "url": "https://www.zakka.com.tw/", 19 "potentialAction": { 20 "@type": "SearchAction", 21 "target": { 22 "@type": "EntryPoint", 23 "urlTemplate": "https://www.zakka.com.tw/search?q={filter_name}" 24 }, 25 "query-input": "required name=filter_name" 26 } 27 } 28 </script>
28 <!-- Organization / LocalBusiness Schema -->
28<script type="application/ld+json"> 29 { 30 "@context": "https:\/\/schema.org", 31 "@type": "Organization", 32 "name": "Zakkaé貨網", 33 "url": "https:\/\/www.zakka.com.tw\/", 34 "logo": "https:\/\/image-cdn-flare.qdm.cloud\/q6942cbf091f86\/image\/data\/2019\/12\/30\/8842655e6a2359787901046f09f560ed.png", 35 "email": "[email protected]", 36 "sameAs": [ 37 "https:\/\/www.facebook.com\/LoveZakkaIdea" 38 ], 39 "image": "https:\/\/image-cdn-flare.qdm.cloud\/q6942cbf091f86\/image\/data\/2019\/12\/30\/8842655e6a2359787901046f09f560ed.png" 40} </script>
40
40<script type="text/javascript"> 41(function(c,l,a,r,i,t,y){ 42c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 43t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 44y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 45})(window, document, "clarity", "script", "99n8zhelys"); 46</script>
46 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 117 bytes, lines 46-48
46 <script async 47 onload="callback_gtag_ads_trackConversion()" 48 src="https://www.googletagmanager.com/gtag/js?id=
48G-8CRMWS8GBK
vendor: 12 bytes, line 48
48"></script>
48<script> 49
vendor: 141 bytes, lines 49-53
49window.dataLayer = window.dataLayer || []; 50 function gtag(){dataLayer.push(arguments);} 51 gtag('js', new Date()); 52 53 gtag('config', "
53G-8CRMWS8GBK
vendor: 40 bytes, lines 53-55
53", { send_page_view: false }); 54 55
55</script>
55
55<script> 56 57 var enhanced_conversion_data = {}; 58 var ga_userId = null; 59 var ga_userId_global = null; 60 var qdm_user_uuid = "q6942cbf091f86-kobvu3hrmc83majrrcbdiqogb2"; 61 var helperga4 = null; 62 var xmlhttp_uinfo = new XMLHttpRequest(); 63 xmlhttp_uinfo.open('GET', "https://www.zakka.com.tw/index.php?route=common/header/getLoggedInUserInfo&token=" + new Date().getTime() + "1" + (Math.floor(Math.random() * 999) + 100) , true); 64 xmlhttp_uinfo.onreadystatechange = function() { 65 if (xmlhttp_uinfo.readyState == 4) { 66 if(xmlhttp_uinfo.status == 200) { 67 try { 68 var obj = JSON.parse(xmlhttp_uinfo.responseText); 69 ga_userId = obj.user_id; 70 if( obj.email ) { 71 enhanced_conversion_data.email = obj.email; 72 } 73 } catch (e) { } 74 } 75 } 76 }; 77 xmlhttp_uinfo.send(null); 78 79 try { 80 if ('localStorage' in window && window['localStorage'] !== null){ 81 if( localStorage.getItem('qdm_user_uuid') && qdm_user_uuid == null ) { 82 qdm_user_uuid = localStorage.getItem('qdm_user_uuid'); 83 } 84 } 85 } catch (e) {} 86 window.addEventListener("beforeunload", () => localStorage.removeItem('qdm_user_uuid')); 87 88 function QUUID(){var x=(new Date).getTime(),t="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){const n=(x+16*Math.random())%16|0;return x=Math.floor(x/16),("x"==t?n:3&n|8).toString(16)});return "q6942cbf091f86"+t;} 89 var dateTime = Date.now(); 90 var timestamp = Math.floor(dateTime / 1000); 91 var global_quuid = QUUID(); 92 //var global_quuid = "q6942cbf091f86" + Math.random().toString(13).substr(2, 9) + "" + timestamp + "" + new Date().getTime(); 93 var global_product_id = 0; 94 var ecommCheckoutTotal = 0; 95 var gecommProduct = new Array("0"); 96 var gecommProductName = ''; 97 var gecommProductSKU = ''; 98 var gecommProductDesc = ''; 99 var gecommProductBrand = ''; 100 var gecommProductBrand_cyntelli = ''; 101 var gecommProductCategoryPath = ''; 102 var gecommProductCategoryWithComma = ''; 103 var gecommProductPrice = 0; 104 var gecommCompareAtPrice = 0; 105 var gecommProductImageUrl = ""; 106 var gecommProductUrl = ""; 107 var gecommViewCategoryName = ''; 108 var gecommViewFullCategoryName = ''; 109 var gecommProductToCart = {}; 110 var ecommOrderToCheckout = {}; 111 dataLayer.push({ 112 'pageCategory': 'signup', 113 'visitorType': 'high-value' 114 }); 115 116 var customer_id = '0'; 117 if(customer_id>0){ 118 if( ga_userId !== null ) { 119 ga_userId = customer_id; 120 } 121 } 122 123 var ga_utm_source = null; 124 var toggleVisible = function(id){ 125 var el = document.getElementById(id); 126 if( el !== null ) { el.style.visibility = "visible"; } 127 }; 128 129 </script>
129
129<script id="google-ga-event-track" type="text/javascript"> 130 131 var track_google_ga_trigger = 0; 132 133 setTimeout(function(){ 134 135 if( ga_userId !== null ) { 136 ga_userId_global = "q6942cbf091f86_" + ga_userId; 137 138 dataLayer.push({ 139 'event': 'data', 140 'UID': ga_userId 141 }); 142 window.adGeek_d = { 143 'memberId': ga_userId 144 }; 145 146 147 gtag('config', "G-8CRMWS8GBK", {'user_id': ga_userId_global}); 148 149 150 gtag('config', 'AW-1005446473', { 151 'user_id': ga_userId_global 152 }); 153 } else { 154 gtag('config', 'AW-1005446473'); 155 } 156 157 if( track_google_ga_trigger == 1 ) { return false; }; 158 159 if ( parseInt(global_product_id) > 0 ) { 160 if (typeof gaTrackProductView == 'function') { 161 gaTrackProductView(); 162 } 163 } 164 165 166 167 168 169 170 171 }, 2000); 172 173 </script>
173
173<script> 174 175 var QDMPPID = "86f0ec57929448e24add294378ebbd9f"; 176 function setCookie(name, value, days) { 177 var expires = ""; 178 if (days) { 179 // Mutate ONE Date object then format it. The previous one-liner set the 180 // expiry on a throwaway Date and formatted a fresh (now) Date, so every 181 // "persistent" cookie got expires=now and was dropped immediately. 182 var expireDate = new Date(); 183 expireDate.setTime(expireDate.getTime() + (864e5 * days)); 184 expires = "; expires=" + expireDate.toUTCString(); 185 } 186 // SameSite=Lax lets cookies survive redirects back from external services (e.g. ECPay logistics). 187 document.cookie = name + "=" + value + expires + "; path=/; Secure; SameSite=Lax"; 188 } 189 function getCookie(e){var n,i=document.cookie,o=i.indexOf(" "+e+"=");return-1==o&&(o=i.indexOf(e+"=")),i=-1==o?null:(o=i.indexOf("=",o)+1,-1==(n=i.indexOf(";",o))&&(n=i.length),unescape(i.substring(o,n)))} 190 if( !getCookie("QDMPPID") ) { setCookie("QDMPPID","a63301a21cb4c5062d47835bc5eb7a92", 365); } 191 QDMPPID = getCookie("QDMPPID"); 192 <!-- Facebook Pixel Code --> 193 !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 194 n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 195 n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 196 t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 197 document,'script','https://connect.facebook.net/en_US/fbevents.js'); 198 <!-- End Facebook Pixel Code --> 199 200 function onloadCSS(e,n){function t(){!o&&n&&(o=!0,n.call(e))}var o;e.addEventListener&&e.addEventListener("load",t),e.attachEvent&&e.attachEvent("onload",t),"isApplicationInstalled"in navigator&&"onloadcssdefined"in e&&e.onloadcssdefined(t)}!function(e){"use strict";var n=function(n,t,o){function a(e){return l.body?e():void setTimeout(function(){a(e)})}function d(){r.addEventListener&&r.removeEventListener("load",d),r.media=o||"all"}var i,l=e.document,r=l.createElement("link");if(t)i=t;else{var s=(l.body||l.getElementsByTagName("head")[0]).childNodes;i=s[s.length-1]}var f=l.styleSheets;r.rel="stylesheet",r.href=n,r.media="only x",a(function(){i.parentNode.insertBefore(r,t?i:i.nextSibling)});var c=function(e){for(var n=r.href,t=f.length;t--;)if(f[t].href===n)return e();setTimeout(function(){c(e)})};return r.addEventListener&&r.addEventListener("load",d),r.onloadcssdefined=c,c(d),r};"undefined"!=typeof exports?exports.loadCSS=n:e.loadCSS=n}("undefined"!=typeof global?global:this); 201 202 function removeClass( classname, element ) { 203 var cn = element.className; 204 var rxp = new RegExp( "s?b"+classname+"b", "g" ); 205 cn = cn.replace( rxp, '' ); 206 element.className = cn; 207 } 208 209 var disabledScroll = 1; 210 var doJsAfterLoad = 0; 211 212 213 var stylesheets = [ 214 "https://cdn.qdm.cloud/static/fontawesome/v3.2.1/css/font-awesome.min.css", 215 "https://cdn.qdm.cloud/static/fontawesome/v4.7.0/css/font-awesome.min.css", 216 "https://cdn.qdm.cloud/static/fontawesome/v5.11.2/css/all.min.css", 217 "https://cdn.qdm.cloud/static/fontawesome/v5.11.2/css/v4-shims.min.css", 218 "https://cdn.qdm.cloud/static/fontawesome/v6.5.1/css/all.min.css", 219 "https://fonts.googleapis.com/css?family=Roboto:400,400i,500,700&display=swap", 220 "https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css", 221 "https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css" 222 ]; 223 function refreshMiniCartScrollBar(){ 224 var nice = $(".nicescroll-box").niceScroll(".wrap",{emulatetouch:true,bouncescroll:true}); 225 } 226 function initCoreCSS(){ 227 if( doJsAfterLoad ) return; 228 var loading_css_product = loadCSS("https://cdn.qdm.cloud/assets/css/core_product.24022002.css"); 229 onloadCSS(loading_css_product, function(){ initCSS(); }); 230 toggleVisible('header'); 231 toggleVisible('mainnav'); 232 doJsAfterLoad = 1; 233 } 234 function initCSS(){ 235 for (var i=0; i < stylesheets.length; i++) { loadCSS(stylesheets[i]); } 236 } 237 function loadJS(){ 238 } 239 240 const ImageErrorHandler = { 241 // é ç½®é¸é 242 config: { 243 maxRetries: 5, 244 baseDelay: 200, 245 maxDelay: 3000, 246 defaultImage: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", 247 fallbackImage: "//cdn.qdm.cloud/assets/no_image.jpg" // å¯é¸çæ¿ä»£åç 248 }, 249 250 // æ£å¨èççåç Mapï¼é²æ¢éè¤èçï¼ 251 processingImages: new WeakMap(), //WeakMapæ¸å°è¨æ¶é«çæ´©æ¼ 252 handle(image) { 253 try { 254 if (!image || !image.src || this.processingImages.has(image)) { 255 return; 256 } 257 258 // æ¨è¨çºèçä¸ 259 this.processingImages.set(image, true); 260 261 const retryCount = parseInt(image.getAttribute('data-reload') || '0') + 1; 262 263 if (retryCount > this.config.maxRetries) { 264 this.handleFinalError(image); 265 return; 266 } 267 268 image.setAttribute('data-reload', retryCount); 269 270 // è¨ç®å»¶é²æéï¼ææ¸éé¿ï¼
271 const delay = Math.min( 272 this.config.baseDelay * Math.pow(2, retryCount - 1), 273 this.config.maxDelay 274 ); 275 276 setTimeout(() => { 277 this.retryLoad(image, retryCount); 278 }, delay); 279 280 } catch (err) { 281 console.error('ImageErrorHandler error:', err); 282 this.handleFinalError(image); 283 } 284 }, 285 286 retryLoad(image, retryCount) { 287 const imageSrc = this.updateTimestamp(image.src); 288 // ä½¿ç¨æ°åçç©ä»¶æ¸¬è©¦ 289 const testImage = new Image(); 290 testImage.onload = () => { 291 // æåè¼å ¥ 292 image.src = imageSrc; 293 this.processingImages.delete(image); 294 295 // éæ°ç¶å®é¯èª¤èç 296 image.onerror = () => this.handle(image); 297 }; 298 299 testImage.onerror = () => { 300 // è¼å ¥å¤±æ 301 this.processingImages.delete(image); 302 303 // å¦ææ¯æå¾ä¸æ¬¡é試åï¼å試使ç¨åç¨åç 304 if (retryCount === this.config.maxRetries - 1 && this.config.fallbackImage) { 305 image.src = this.config.fallbackImage; 306 image.onerror = () => this.handle(image); 307 } else { 308 this.handle(image); 309 } 310 }; 311 312 testImage.src = imageSrc; 313 }, 314 315 updateTimestamp(src) { 316 const timestamp = `timestamp=${Date.now()}`; 317 318 if (src.includes('timestamp=')) { 319 return src.replace(/timestamp=\d+/, timestamp); 320 } 321 322 const separator = src.includes('?') ? '&' : '?'; 323 return `${src}${separator}${timestamp}`; 324 }, 325 326 handleFinalError(image) { 327 // æ¸ ç 328 image.onerror = null; 329 image.onload = null; 330 this.processingImages.delete(image); 331 332 // ä¿ååå§ URL 333 if (!image.src.includes("base64") && !image.hasAttribute('data-image-raw')) { 334 image.setAttribute('data-image-raw', image.src); 335 } 336 337 // è¨ç½®é è¨åç 338 image.src = this.config.defaultImage; 339 340 // 觸ç¼äºä»¶ 341 image.dispatchEvent(new CustomEvent('imageFinalError', { 342 detail: { 343 originalSrc: image.getAttribute('data-image-raw'), 344 retries: image.getAttribute('data-reload') 345 } 346 })); 347 } 348 }; 349 350 // åçé¯èª¤ 351 function imgError(image) { 352 ImageErrorHandler.handle(image); 353 } 354 355 356 </script>
356 <!-- Facebook Pixel Code -->
356<script id="facebook-pixcel-reportFbqTrack" type="text/javascript"> 357 function reportFbqTrack() { 358 fbq('dataProcessingOptions', []); 359 var pixel_ids = ['176994973154558','423253797857376']; 360 var fb_advanced_matching = {}; 361 for (var i = 0; i < pixel_ids.length; i++){ 362 try { 363 var init_params = Object.assign({}, fb_advanced_matching); 364 if( ga_userId !== null ) { 365 ga_userId_global = "q6942cbf091f86_" + ga_userId; 366 init_params.uid = ga_userId_global; 367 } 368 init_params.external_id = QDMPPID; 369 fbq('init', pixel_ids[i], init_params, {'agent':'plQDM'}); 370 } catch (e) { 371 // fallback: è³å°å å« external_id 372 var fallback_params = {external_id: QDMPPID}; 373 fbq('init', pixel_ids[i], fallback_params, {'agent':'plQDM'}); 374 } 375 } 376 setTimeout(function() { fbq('track', "PageView", {}, {eventID: global_quuid + "v"}); }, 30); 377 378 379 380 } 381 </script>
381 <!-- End Facebook Pixel Code -->
381<script> 382 function vbtrax_track(){ 383 } 384 385 function criteo_track(){ 386 } 387 388 389 </script>
389 <!-- Google Tag Manager -->
389<script> 390 setTimeout(function(){
vendor: 333 bytes, lines 390-395
390 391 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 392 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 393 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 394 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 395 })(window,document,'script','dataLayer','
395GTM-WT28N9
vendor: 5 bytes, lines 395-396
395'); 396
396}, 1500); 397 </script>
397 <!-- End Google Tag Manager -->
397<script type="text/javascript"> 398 var google_tag_params = { ecomm_prodid:'', ecomm_pagetype:'other', ecomm_totalvalue: '' }; 399 400 401 google_tag_params.ecomm_prodid = '0'; 402 google_tag_params.ecomm_pagetype = 'view_item'; 403 404 405 406 407 var trackConversion = { 408 google_conversion_id : 0, 409 google_custom_params : google_tag_params, 410 google_conversion_value : 0, 411 google_remarketing_only : false 412 } 413 delete trackConversion.google_custom_params; 414 415 function callback_google_trackConversion(){ 416 if (typeof window.google_trackConversion !== undefined) { 417 if (typeof window.google_trackConversion === "function") { 418 window.google_trackConversion(trackConversion); 419 } 420 } 421 } 422 var gtag_ads_trackConversion_trigger = 0; 423 var callback_gtag_conversion = function (e) { 424 if( gtag_ads_trackConversion_trigger == 0 ) { 425 console.log('-- gtag_event_conversion --'); 426 console.log(e); 427 console.log(trackConversion); 428 console.log(google_tag_params); 429 } 430 }; 431 function callback_gtag_ads_trackConversion(){ 432 433 if( gtag_ads_trackConversion_trigger ) return false; 434 gtag_ads_trackConversion_trigger = 1; 435 436 setTimeout(function(){ 437 438 var gtag_event_conversion_t = 0; 439 440 441 if( gtag_event_conversion_t == 0 ) { 442 gtag('event',google_tag_params.ecomm_pagetype, { 443 'value': google_tag_params.ecomm_totalvalue, 444 'items': [{ 445 'id': google_tag_params.ecomm_prodid, 446 'google_business_vertical':'retail' 447 }], 448 'event_callback': callback_gtag_conversion 449 }); 450 } 451 452 453 }, 1000); 454 } 455 </script>
455
455<script type="application/javascript"> </script>
455 </script>
455
455<script> 456 var N=document.createElement("link"); 457 N.setAttribute("href", "https://image-cdn-flare.qdm.cloud/q6942cbf091f86/image/data/2019/07/10/873e320e7750eda54a056a178da9ecd4.png"); 458 N.setAttribute("rel", "shortcut icon"); 459 N.setAttribute("type", "image/png"); 460 document.head.appendChild(N); 461 </script>
461
461<script>document.createElement("picture");</script>
461
461<script async src='https://cdnjs.cloudflare.com/ajax/libs/picturefill/3.0.3/picturefill.min.js'></script>
461 <link rel="icon" href="https://image-cdn-flare.qdm.cloud/q6942cbf091f86/image/data/2019/07/10/873e320e7750eda54a056a178da9ecd4.png" type="image/png" sizes="48x48" > <link rel="shortcut icon" href="https://image-cdn-flare.qdm.cloud/q6942cbf091f86/image/data/2019/07/10/873e320e7750eda54a056a178da9ecd4.png" type="image/png" sizes="48x48" > <link type="text/css" rel="stylesheet" href="https://cdn.qdm.cloud/min/css/core.260320v01.css"> <style> 462 *, body, p, pre, button, input, optgroup, select, textarea, a, a:visited { font-family: 'SF Pro TC', 'SF Pro Text', 'PingFang TC', 'Segoe UI', SegoeUI, 'Microsoft JhengHei', å¾®è»æ£é»é«, 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } 463 @media (min-width: 1200px) { body { padding-top: 40px; } .container, .navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { width: 1170px; } } 464 .hidden{display:none;visibility:hidden} 465 .pull-right { float: right !important; } 466 .container > #mainnav.skin4 { max-width:860px;width:100%; } 467 .container > #mainnav.skin4 .nav.menu-nav { display:inherit; } 468 #mainnav ul { list-style: none; display: flex; flex-wrap: wrap; } 469 #mainnav ul li { position: relative; } 470 #mainnav ul li ul.dropdown-menu { position: absolute; display: none; flex-direction: column; } 471 #mainnav ul li ul.dropdown-menu > li.column-menu { display: table-cell; border-right: 1px solid #eee; vertical-align: top; } 472 #mainnav ul li ul.dropdown-menu > li.column-menu > ul { display: block; } 473 #mainnav ul li:hover > ul { display: flex; } 474 #mainnav ul ul ul {top: 0; left: 100%; border-left:solid 1px #fff; width:auto;} 475 #mainnav ul.nav li.dropdown ul.dropdown-menu { webkit-box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); -moz-box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); } 476 #mainnav ul.nav li.dropdown ul.dropdown-menu li a { font-size: 17px; line-height: 26px; } 477 #mainnav ul.nav li.dropdown > ul.dropdown-menu > li[data-has-child] > a:after { content: ''; border: 4px solid transparent; border-left: 4px solid #000; margin-top: 2px; margin-bottom: 3px; display: inline-block; vertical-align: bottom; position: absolute; right: 6px; top: 10px; } 478 .navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;} 479 .navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;} 480 #header ul{list-style:none;margin:0;padding:0} #header li{list-style:none} 481 .navbar .nav{position:relative;} 482 .navbar .nav.pull-right{float:right;margin-right:0;} 483 .navbar .nav>li{float:left;} 484 .navbar .nav>li>a{float:none;padding:10px 15px 10px;text-decoration:none;} 485 .navbar .nav .dropdown-toggle .caret{margin-top:8px;} 486 .navbar .button-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;} 487 .button-navbar .icon-bar+.icon-bar{margin-top:3px;} 488 .navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;} 489 .navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;} 490 .dropdown-menu { position: absolute; display: none; float: left; } 491 .dropup, .dropdown { position: relative; } 492 .pushy { z-index: 99999999; } 493 .pushy-menu-storename span{ 494 width: 40%; 495 position: absolute; 496 top: 24px; 497 right: 5px; 498 text-align: right; 499 padding-right: 10px; 500 } 501 .pushy-menu-storename a{ 502 width: 90%; 503 } 504 .pushy-menu-storename a:hover, a:visited, a:link, a:active { 505 text-decoration: none; 506 } 507 </style> <link type="text/css" rel="stylesheet" href="https://cdn.qdm.cloud/min/css/theme/skin-2.css?v=231130001"> <link type="text/css" rel="stylesheet" href="https://image-cdn.qdm.cloud/site/q6942cbf091f86/custom_theme.css?v=20260831094448"> <style> 508 html {-webkit-transition: background-color 0s;transition: background-color 0s;} html.loading { position: relative; overflow:hidden; width:100%; height:100%; min-height:768px;
508 background: #fff url('https://cdn.qdm.cloud/min/cache/loading_1107.gif') no-repeat 50% 40%;-webkit-transition: background-color 0; transition: background-color 0; height: 100%; width: 100%;} body {-webkit-transition: opacity 0.3s ease-in;transition: opacity 0.3s ease-in;} html.loading body { opacity: 0; -webkit-transition: opacity 0s; transition: opacity 0s; } html.loading:before { font-size: 15px; content: "ã è«å¿ééè¦çª ãçåäº¤æææ¬ä¸"; color: #000; vertical-align: middle; text-align: center; width: 100%; display: block; position: absolute; top: 30%; } img { opacity: 1; transition: opacity 0s; } img[data-src] { opacity: 1; } .flexslider .flex-direction-nav { display:none; } 509 #myBody.product-product .heading h1, #myBody.product-product .mainborder .rightcol h1 { color: rgb(0, 0, 0); 510 font-size:30px;line-height:30px;} 511 .already_sold span{color:#e4007f;font-weight:bold;} 512 #myBody .fancybox-buttons { top: 60px; } 513 .ui-autocomplete.ui-front.ui-menu { 514 z-index: 999999999; border: none; border: 1px solid #EEE; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 515 } 516 .ui-autocomplete.ui-front.ui-menu > .ui-menu-item { 517 font-size: 17px; line-height: 26px; list-style-image: none; background-color: #FFF; cursor: pointer; border: none; 518 } 519 .ui-autocomplete.ui-front.ui-menu > .ui-menu-item a.ui-state-focus { 520 line-height: 26px; 521 border-color: #616161; 522 background: #616161 !important; 523 font-weight: bold !important; 524 color: #ffffff !important; 525 } 526 @media only screen and (max-width:768px){.fb_dialog_content>iframe:first-child, .fb-customerchat iframe {bottom: 50px !important;}.quickcheckout-checkout .fb_dialog_content>iframe:first-child, .quickcheckout-checkout .fb-customerchat iframe {bottom: 90px !important;}} 527 .onsale{ width:65px; height:24px; min-width:65px; min-height:24px; padding:2px; border-radius:5%; line-height:20px; } 528 #navbar-top-socialbar li.social-icon{ line-height:0px; padding-top:6px; } 529 #navbar-top-socialbar li.social-icon>a>i{ line-height:24px; } 530 .display_price { display:none; } 531 532 #payment-logo-list{ 533 width: 100%; 534 max-width: 1200px; 535 margin: 0 auto; 536 /*padding-bottom: 20px;*/ 537 padding-top: 10px; 538 } 539 540 #payment-logo-list .pl-row { 541 display: flex; 542 flex-wrap: wrap; 543 justify-content: center; 544 gap: 20px; 545 } 546 547 #payment-logo-list .pl-col { 548 flex: 1; 549 max-width: 120px; 550 padding: 2px; 551 text-align: center; 552 } 553 #payment-logo-list .pl-col img { 554 max-height: 40px; 555 line-height: 40px; 556 object-fit: contain 557 } 558 @media only screen and (max-width:768px){ 559 #payment-logo-list .pl-col { 560 min-width: 10%; 561 } 562 } 563 </style> <style> 564 .preload-hidden { opacity: 0; transition: opacity .3s ease; } 565 .awoo-ui { display:block; margin-top:20px; margin-bottom:20px; } 566 </style>
566<script> 567 window.addEventListener('load', function(){ 568 try { 569 setTimeout(function(){ 570 var preloadElements = document.querySelectorAll('.preload-hidden'); 571 preloadElements.forEach(function(element) { 572 element.style.opacity = '1'; 573 }); 574 }, 300); 575 } catch(e) {} 576 }); 577 </script>
577 </head> <body id="myBody" data-customer-group="1" data-instant-allow-query-string itemscope itemtype="https://schema.org/WebSite" class="responsive skin-2 information-news"> <div id="fb-root"></div>
577<script> 578 window.fbAsyncInit = function() { 579 FB.init({ 580 appId : '1876518175972690', 581 autoLogAppEvents : true, 582 cookie : true, 583 xfbml : true, 584 status : true, 585 version : 'v19.0' 586 }); 587 }; 588</script>
588 <!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, line 588
588 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
588GTM-WT28N9
vendor: 83 bytes, lines 588-589
588" 589height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
589<!-- End Google Tag Manager (noscript) --> <meta itemprop="url" content="https://www.zakka.com.tw/" /> <!-- Mobile Header --> <!--googleoff: index--> <div id="mobile-navbar" class="navbar navbar-static-top FixedTop visible-xs visible-sm" style="display:none;"> <div class="navbar-inner"> <ul class="nav"> <li id="menu-btn" class="menu-btn"><span>☰</span></li> <li class="site-title"> <a href="https://www.zakka.com.tw/"><img src="//image-cdn-flare.qdm.cloud/q6942cbf091f86/image/data/2019/07/09/0b45743048f2e31f9ab03e62588789f8.png" title="Zakkaé貨網" style="width:auto;max-height:56px;" /></a> </li> <li id="shopping-cart-list" class="shopping-cart" data-direction="left" style="overflow: visible; margin: 0px; padding-right: 10px;"><a href="https://www.zakka.com.tw/cart"><i class="fa fa-shopping-cart" aria-hidden="true"></i><span class="badge hidden">0</span></a></li> </ul> </div> </div> <!--googleon: index--> <!-- Pushy Menu --> <nav id="mobile-menu-pushy" class="pushy pushy-left visible-xs visible-sm" style="display:none;"> <div class="pushy-content"> <ul> <li class="pushy-menu-storename"> <a href="https://www.zakka.com.tw/">Zakkaé貨網</a> <span><i class="fa fa-times" aria-hidden="true"></i></span> </li> <div class="pushy-menu-main"> <li class="header-logged-menu pushy-submenu hidden"> <button><i class="fa fa-user-circle-o"></i> <span id="header-mobile-user"></span></button> <ul> <li class="pushy-link"><a href="/account">æå¡ä¸å¿</a></li> <li class="pushy-link"><a href="https://www.zakka.com.tw/account/edit">æçè³æ</a></li> <li class="pushy-link"><a href="https://www.zakka.com.tw/account/reward">æçç´
å©</a></li> <div class="pushy-menu-divide"></div> <li class="pushy-link"><a href="https://www.zakka.com.tw/wishlist">顿æ¸
å®</a></li> <li class="pushy-link"><a href="https://www.zakka.com.tw/compare">å忝è¼</a></li> <div class="pushy-menu-divide"></div> <li class="pushy-link"><a href="https://www.zakka.com.tw/newsletter">æçè¨é±</a></li> </ul> </li> <li class="header-logged-menu pushy-submenu hidden"> <button><i class="fa fa-truck" aria-hidden="true"></i> æçè¨å®</button> <ul> <li class="pushy-link"><a href="https://www.zakka.com.tw/account/order/payment">填坫坿¬¾å®</a></li> <li class="pushy-link"><a href="https://www.zakka.com.tw/order">æçè¨å®</a></li> <li class="pushy-link"><a href="https://www.zakka.com.tw/account/return">é/æè²¨ç´é</a></li> </ul> </li> <li class="pushy-link header-none-logged-menu hidden"><a href="/login"><i class="fa fa-user-circle-o"></i> æå¡ä¸å¿ (ç»å
¥)</a></li> <li class="pushy-link header-none-logged-menu hidden"><a href="/guestorder"><i class="fa fa-search-plus" aria-hidden="true"></i> æè¦æ¥è¨å®</a></li> <li class="pushy-submenu"> <button><i class="fa fa-commenting-o" aria-hidden="true"></i> æ¾åºé·</button> <ul> <li class="pushy-link"><a href="https://www.zakka.com.tw/contact">ç·ä¸çè¨</a></li> <li class="pushy-link"><a href="mailto:[email protected]" target="_blank" rel="noopener noreferrer nofollow">é»åéµä»¶</a></li> <li class="pushy-link"><a href="https://www.messenger.com/t/LoveZakkaIdea" target="_blank" rel="noopener noreferrer nofollow">Facebookè¨æ¯</a></li> </ul> </li> <li class="pushy-link header-logged-menu hidden"><a href="https://www.zakka.com.tw/account/logout"><i class="fa fa-sign-out" aria-hidden="true"></i> ç»åº</a></li> <li class="pushy-submenu"> <button><i class="fa fa-dollar" aria-hidden="true"></i> Currency</button> <ul> <li class="pushy-link"><a href="/currency?currency_code=TWD">NT$ TWD</a></li> </ul></li> </div> <!-- \.pushy-menu-main --> <div class="pushy-menu-divide"></div> <div class="search"> <form method="get" action="/search"> <span class="fa fa-search"></span> <input type="text" name="q" placeholder="ååééµå" autocomplete="off"> </form><br/> </div> <div class="pushy-menu-category"> <li class="pushy-link home-item-link"><a href="https://www.zakka.com.tw/">ååºé¦é </a></li> <li class="pushy-link" > <a href="https://www.zakka.com.tw/ææ°åå" >ææ°åå</a> </li> <li class="pushy-submenu" > <button><span class="pushy-submenu-parent" data-url="https://www.zakka.com.tw/ææ°æ´»å" >ä¿é·æ´»å</span></button> <ul> <li class="pushy-link"> <a href="promotion1&event1=2" >éåMOTEXè¶
ç´ææ¨æ©éæ9æèµ·</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/OT4387" >éå製ab life坿å¼ç½è å¸ç®¡4ä»¶åªè¦190</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/promotion1&event1=4" >
589æ¨ä½é¢ç´ç/memoæ¶çæ¶ç´å°åç¹è³£6æ</a> </li> <li class="pushy-link"> <a href="http://bit.ly/2xHkJjv" >Zakkaè¦ç®è³£å ´é£çµâ</a> </li> </ul> </li> <li class="pushy-submenu" > <button><span class="pushy-submenu-parent" data-url="https://www.zakka.com.tw/æ¶å¤åéåç¨å" >æ¶å¤åéåç¨å</span></button> <ul> <li class="pushy-link"> <a href="https://www.zakka.com.tw/夿¥é²æ¬" >夿¥é²æ¬</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/æ è¡æ¶ç´ç³»å-å è¢é¡" >æ è¡æ¶ç´/è¡æè¢é¡</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/æ°´ç¶-水壺" >æ°´ç¶/水壺</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/é²çç¨å" >é²çç¨å</a> </li> </ul> </li> <li class="pushy-submenu" > <button><span class="pushy-submenu-parent" data-url="https://www.zakka.com.tw/product/category&path=2" >è¶£å³é貨</span></button> <ul> <li class="pushy-link"> <a href="https://www.zakka.com.tw/ççç³»" >ççç³»</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/ç©å ·é¡" >ç©å ·/ç§å¸é¡</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/å ¶å®è¶£å³é貨" >å ¶å®è¶£å³é貨</a> </li> </ul> </li> <li class="pushy-submenu" > <button><span class="pushy-submenu-parent" data-url="https://www.zakka.com.tw/å± å®¶çæ´»" >å± å®¶çæ´»</span></button> <ul> <li class="pushy-link"> <a href="https://www.zakka.com.tw/æé-å®¤å §æ" >æé/å®¤å §æ</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/å± å®¶æ¶ç´" >å± å®¶æ¶ç´</a> <ul> <li class="pushy-link"><a href="https://www.zakka.com.tw/ä¿å°è¢-ä¿æº«è¢" ">ä¿å°è¢/ä¿æº«è¢</a></li> </ul> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/æå·¥å ·é¡" >æå·¥å ·é¡</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/å¸é¡è£½å" >å¸é¡è£½å/å¯¢å ·/æ±æ</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/é»åé¡" >é»åé¡(嫿/æå°æ©)</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/å ¶å®çæ´»é貨" >å ¶å®çæ´»é貨</a> </li> </ul> </li> <li class="pushy-submenu" > <button><span class="pushy-submenu-parent" data-url="https://www.zakka.com.tw/åäººåæ è¡é ä»¶" >åäººåæ è¡é ä»¶</span></button> <ul> <li class="pushy-link"> <a href="https://www.zakka.com.tw/æ è¡é±é" >æ è¡é±é</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/é¨èº«é ä»¶" >å人é¨èº«é ä»¶</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/å å é¡" >å å é¡</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/嬰å ç¨å-åå " >嬰å ç¨å/åå </a> </li> </ul> </li> <li class="pushy-submenu" > <button><span class="pushy-submenu-parent" data-url="https://www.zakka.com.tw/廿¿æµ´å®¤" >廿¿æµ´å®¤</span></button> <ul> <li class="pushy-link"> <a href="https://www.zakka.com.tw/ä¿æº«æ¯-ä¿æº«ç¶" >ä¿æº«æ¯/ä¿æº«ç¶</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/浴室ç¨å" >浴室ç¨å</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/廿¿é±é" >廿¿ç¨å</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/餿¡ç¨å" >餿¡ç¨å</a> </li> </ul> </li> <li class="pushy-submenu" > <button><span class="pushy-submenu-parent" data-url="https://www.zakka.com.tw/è¾¦å ¬æå ·-2" >è¾¦å ¬å°ç©</span></button> <ul> <li class="pushy-link"> <a href="https://www.zakka.com.tw/è¾¦å ¬æå ·" >è¾¦å ¬æå ·</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/è¾¦å ¬æ¶ç´" >è¾¦å ¬æ¶ç´</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/3Cé»è ¦é±é" >3Cé»è ¦é±é</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/çè¨æ¬-memoç´-å¡ç" >çè¨æ¬/memoç´/å¡ç</a> </li> <li class="pushy-link"> <a href="https://www.zakka.com.tw/å ¶å®è¾¦å ¬å°ç©" >å ¶å®è¾¦å ¬å°ç©</a> </li> </ul> </li> <li class="pushy-link" > <a href="https://www.zakka.com.tw/好康ç¹è³£-on-sell" >好康ç¹è³£</a> </li> </div> </ul> </div> </nav> <!-- Site Overlay --> <div class="site-overlay"></div> <header id="header" class="visible-lg visible-md" itemscope itemtype="https://schema.org/Organization"> <div class="container"> <!-- search bar --> <div class="container" id="search" class="search"> <div class="searchbox input-append" itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction"> <meta itemprop="target" content="https://www.zakka.com.tw/search?q={filter_name}"/> <input itemprop="query-input" type="search" name="filter_name" value="" placeholder="æå°" class="input-xxlarge" /> <button class="button button-search" type="button"><i class="icon-search"></i></button> </div> </div> <ul class="nav nav-pills pull-right"> <li style="margin-top:-1px; margin-right: 10px;"></li> <li></li> <li><section class="float-mini-cart" id="cart"> <style> 590.mini-cart-info td, .mini-cart-total td { line-height:20px; } 591</style> <div class="heading"> <i class="fa fa-shopping-cart"></i> 592 ( <a href="https://www.zakka.com.tw/cart" id="cart-total"> 593 0 ä»¶åå NT$0 </a> 594 ) 595 </div> <div class="content"> <div class="empty white">è³¼ç©è»æ²æå å ¥ä»»ä½åå</div> <a id="closecart" class="close" title="Close" onclick="$('#cart').removeClass('active');">Ã</a> </div> </section></li> <li id="header-logged-menu" class="dropdown hidden"> <a href="https://www.zakka.com.tw/account" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user-o"></i> <span id="header-logged-user"></span> <b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="https://www.zakka.com.tw/account">æå¡ä¸å¿</a></li> <li><a href="https://www.zakka.com.tw/order">æçè¨å®</a></li> <li><a href="https://www.zakka.com.tw/account/order/payment">填坫坿¬¾å®</a></li> <li><a href="https://www.zakka.com.tw/wishlist">é¡ææ¸ å®</a></li> <li><a href="https://www.zakka.com.tw/compare">å忝è¼</a></li> <li class="divider"></li> <li><a href="https://www.zakka.com.tw/account/logout">ç»åº</a></li> </ul> </li> <li id="header-none-logged-menu"><a href="https://www.zakka.com.tw/login" title="æå¡ç»å ¥" id="bt
595nLogin"><i class="fa fa-user-o"></i> æå¡ç»å ¥</a></li> <li class="dropdown"> <a href="##" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-commenting-o"></i></a> <ul class="dropdown-menu"> <li><a href="https://www.zakka.com.tw/contact"><i class="fa fa-comments-o"> ç·ä¸çè¨</i></a></li> <li><a href="mailto:[email protected]" target="_blank" rel="noopener noreferrer nofollow"><i class="fa fa-envelope-o"> é»åéµä»¶</i></a></li> <li><a href="https://www.messenger.com/t/LoveZakkaIdea" target="_blank" rel="noopener noreferrer nofollow"><i class="fa fa-facebook-square"> Facebookè¨æ¯</i></a></li> </ul> </li> <li><a href="##" id="switchSearchPanel" class="switchSearchPanel" title="æåå"><i class="fa fa-search"></i></a></li> </ul> <a itemprop="url" class="logo" href="https://www.zakka.com.tw/"><img onerror='imgError(this);' itemprop="logo" src="//image-cdn-flare.qdm.cloud/q6942cbf091f86/image/data/2019/12/30/8842655e6a2359787901046f09f560ed.png" title="Zakkaé貨網" alt="Zakkaé貨網" /></a> </div> <br/><br/> </header> <div id="content-wrapper"> <div class="container"> <nav id="mainnav" class="navbar visible-lg visible-md" role="navigation" style="visibility:hidden"> <div class="navbar-inner"> <div class="container"> <button type="button" class="button button-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span> 596 597 é¸å®</span> <i class="icon-navbtn"></i> </button> <div class="nav-collapse"> <ul class="nav"> <li data-categoryid="1" href="https://www.zakka.com.tw/ææ°åå" > <a href="https://www.zakka.com.tw/ææ°åå" data-hover="NEW ARRIVAL">ææ°åå</a> </li> <li data-categoryid="8" href="https://www.zakka.com.tw/ææ°æ´»å" class="dropdown"> <a href="https://www.zakka.com.tw/ææ°æ´»å" data-hover="PROMOTION <b class='caret'></b>">ä¿é·æ´»å <b class="caret"></b></a> <ul class="dropdown-menu"> <li id="20" ><a href="promotion1&event1=2" data-hover="DIYåæ¨ç±¤ï¼æä½162å èµ·ï¼">éåMOTEXè¶ ç´ææ¨æ©éæ9æèµ·</a> </li> <li id="21" ><a href="https://www.zakka.com.tw/OT4387" data-hover="å¹³åå®å¹åªè¦48å ï¼">éå製ab life坿å¼ç½è å¸ç®¡4ä»¶åªè¦190</a> </li> <li id="22" ><a href="https://www.zakka.com.tw/promotion1&event1=4" data-hover="itenonæ¨ä½å¹´çµç¹è³£6æ">æ¨ä½é¢ç´ç/memoæ¶çæ¶ç´å°åç¹è³£6æ</a> </li> <li id="23" ><a href="http://bit.ly/2xHkJjv" data-hover="è¦ç®ç´æ¥è²·GO~">Zakkaè¦ç®è³£å ´é£çµâ</a> </li> </ul> </li> <li data-categoryid="51" href="https://www.zakka.com.tw/æ¶å¤åéåç¨å" class="dropdown"> <a href="https://www.zakka.com.tw/æ¶å¤åéåç¨å" data-hover="é²çé±é <b class='caret'></b>">æ¶å¤åéåç¨å <b class="caret"></b></a> <ul class="dropdown-menu"> <li id="30" ><a href="https://www.zakka.com.tw/夿¥é²æ¬" data-hover="">夿¥é²æ¬</a> </li> <li id="31" ><a href="https://www.zakka.com.tw/æ è¡æ¶ç´ç³»å-å è¢é¡" data-hover="è¡£ç©æ¶ç´">æ è¡æ¶ç´/è¡æè¢é¡</a> </li> <li id="32" ><a href="https://www.zakka.com.tw/æ°´ç¶-水壺" data-hover="Bottle">æ°´ç¶/水壺</a> </li> <li id="33" ><a href="https://www.zakka.com.tw/é²çç¨å" data-hover="é²çé±é">é²çç¨å</a> </li> </ul> </li> <li data-categoryid="2" href="https://www.zakka.com.tw/product/category&path=2" class="dropdown"> <a href="https://www.zakka.com.tw/product/category&path=2" data-hover="FUN <b class='caret'></b>">è¶£å³é貨 <b class="caret"></b></a> <ul class="dropdown-menu"> <li id="40" ><a href="https://www.zakka.com.tw/ççç³»" data-hover="">ççç³»</a> </li> <li id="41" ><a href="https://www.zakka.com.tw/ç©å ·é¡" data-hover="">ç©å ·/ç§å¸é¡</a> </li> <li id="42" ><a href="https://www.zakka.com.tw/å ¶å®è¶£å³é貨" data-hover="">å ¶å®è¶£å³é貨</a> </li> </ul> </li> <li data-categoryid="3" href="https://www.zakka.com.tw/å± å®¶çæ´»" class="dropdown"> <a href="https://www.zakka.com.tw/å± å®¶çæ´»" data-hover="LIVING <b class='caret'></b>">å± å®¶çæ´» <b class="caret"></b></a> <ul class="dropdown-menu"> <li id="50" ><a href="https://www.zakka.com.tw/æé-å®¤å §æ" data-hover="å®¤å §æ">æé/å®¤å §æ</a> </li> <li id="51" data-has-child='1'><a href="https://www.zakka.com.tw/å± å®¶æ¶ç´" data-hover="">å± å®¶æ¶ç´</a> <ul class="dropdown-menu"> <li id="51_50"><a href="https://www.zakka.com.tw/ä¿å°è¢-ä¿æº«è¢" data-hover="便ç¶è¢">ä¿å°è¢/ä¿æº«è¢</a></li> </ul> </li> <li id="52" ><a href="https://www.zakka.com.tw/æå·¥å ·é¡" data-hover="">æå·¥å ·é¡</a> </li> <li id="53" ><a href="https://www.zakka.com.tw/å¸é¡è£½å" data-hover="">å¸é¡è£½å/å¯¢å ·/æ±æ</a> </li> <li id="54" ><a href="https://www.zakka.com.tw/é»åé¡" data-hover="">é»åé¡(嫿/æå°æ©)</a> </li> <li id="55" ><a href="https://www.zakka.com.tw/å ¶å®çæ´»é貨" data-hover="">å ¶å®çæ´»é貨</a> </li> </ul> </li> <li data-categoryid="28" href="https://www.zakka.com.tw/åäººåæ è¡é ä»¶" class="dropdown"> <a href="https://www.zakka.com.tw/åäººåæ è¡é ä»¶" data-hover="TRAVEL <b class='caret'></b>">åäººåæ è¡é ä»¶ <b class="caret"></b></a> <ul class="dropdown-menu"> <li id="60" ><a href="https://www.zakka.com.tw/æ è¡é±é" data-hover="">æ è¡é±é</a> </li> <li id="61" ><a href="https://www.zakka.com.tw/é¨èº«é ä»¶" data-hover="">å人é¨èº«é ä»¶</a> </li> <li id="62" ><a href="https://www.zakka.com.tw/å å é¡" data-hover="">å å é¡</a> </li> <li id="63" ><a href="https://www.zakka.com.tw/嬰å ç¨å-åå " data-hover="">嬰å ç¨å/åå </a> </li> </ul> </li> <li data-categoryid="25" href="https://www.zakka.com.tw/廿¿æµ´å®¤" class="dropdown"> <a href="https://www.zakka.com.tw/廿¿æµ´å®¤" data-hover="KITCHEN <b class='caret'></b>">廿¿æµ´å®¤ <b class="caret"></b></a> <ul class="dropdown-menu"> <li id="70" ><a href="https://www.zakka.com.tw/ä¿æº«æ¯-ä¿æº«ç¶" data-hover="ä¿æº«æ¯">ä¿æº«æ¯/ä¿æº«ç¶</a> </li> <li id="71" >
597<a href="https://www.zakka.com.tw/浴室ç¨å" data-hover="">浴室ç¨å</a> </li> <li id="72" ><a href="https://www.zakka.com.tw/廿¿é±é" data-hover="">廿¿ç¨å</a> </li> <li id="73" ><a href="https://www.zakka.com.tw/餿¡ç¨å" data-hover="">餿¡ç¨å</a> </li> </ul> </li> <li data-categoryid="4" href="https://www.zakka.com.tw/è¾¦å ¬æå ·-2" class="dropdown"> <a href="https://www.zakka.com.tw/è¾¦å ¬æå ·-2" data-hover="OFFICE <b class='caret'></b>">è¾¦å ¬å°ç© <b class="caret"></b></a> <ul class="dropdown-menu"> <li id="80" ><a href="https://www.zakka.com.tw/è¾¦å ¬æå ·" data-hover="">è¾¦å ¬æå ·</a> </li> <li id="81" ><a href="https://www.zakka.com.tw/è¾¦å ¬æ¶ç´" data-hover="">è¾¦å ¬æ¶ç´</a> </li> <li id="82" ><a href="https://www.zakka.com.tw/3Cé»è ¦é±é" data-hover="">3Cé»è ¦é±é</a> </li> <li id="83" ><a href="https://www.zakka.com.tw/çè¨æ¬-memoç´-å¡ç" data-hover="">çè¨æ¬/memoç´/å¡ç</a> </li> <li id="84" ><a href="https://www.zakka.com.tw/å ¶å®è¾¦å ¬å°ç©" data-hover="">å ¶å®è¾¦å ¬å°ç©</a> </li> </ul> </li> <li data-categoryid="9" href="https://www.zakka.com.tw/好康ç¹è³£-on-sell" > <a href="https://www.zakka.com.tw/好康ç¹è³£-on-sell" data-hover="ON SALE">好康ç¹è³£</a> </li> </ul> </div> </div> </div> </nav><!-- #navbar --> </div><!-- .container --> <div class="fluid-container"> <div id="content-top"></div> </div><!-- .fluid-container --> <div id="body-outer-container" class="container"> <div class="container-inner"> <div id="content"> <ol class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"> <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <a itemprop="item" href="https://www.zakka.com.tw/"> <span itemprop="name">é¦é </span> <meta itemprop="position" content="1" /> </a> <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> 598 > <a itemprop="item" href="https://www.zakka.com.tw/information/news"> <span itemprop="name">ææ°æ¶æ¯</span> <meta itemprop="position" content="2" /> </a> </li> </ol> <ul> <div class="panelcollapsed"> <li><h4><small>2019/07/01</small> <a href="https://www.zakka.com.tw/information/news&news_id=1" style="display:inline;"><span style="color:#ff0000;"><strong><span style="font-size:16px;">æ°æå¡è¨»åéç´ å©é30å æ´»åéè·ï¼</span></strong></span> 599 600 </a></h4></li> </div> </ul> <div class="clearfix" style="margin:12px;"> <div class="pagination"><div class="results">顯示第 1 è³ 1 åæ¶æ¯ï¼å ±æ 1 åæ¶æ¯ (å 1 é 顯示)</div></div> </div> <br/><br/> </div> <br/><br/><br/> </div> <!-- .container-inner --> </div> <!-- .container --> </div> <!-- #content_wrapper --> <input type="hidden" id="ga_utm_source" name="ga_utm_source" value=""> <input type="hidden" id="ga_utm_medium" name="ga_utm_medium" value=""> <input type="hidden" id="ga_utm_campaign" name="ga_utm_campaign" value=""> <footer id="footer" class="clearfix "> <div class="footer-inner container"> <div id="footer-inner-row" data-count="0" class="row-fluid offset2 clearfix"> <div class="column span2"> <h3 class="header">ååºè¨æ¯</h3> <ul class="content"> <li id="inf1"><a href="https://www.zakka.com.tw/pages/è³¼ç©é ç¥">è³¼ç©èªªæ</a></li> <li id="inf2"><a href="https://www.zakka.com.tw/pages/éæè²¨æ¿ç">éæè²¨æ¿ç</a></li> <li id="inf3"><a href="https://www.zakka.com.tw/pages/éæ¼æå">éæ¼æå</a></li> <li id="inf4"><a href="https://www.zakka.com.tw/pages/é±ç§æ¬ä¿è·">é±ç§æ¬ä¿è·</a></li> </ul> </div> <div class="column span2"> <h3 class="header">å®¢æ¶æå</h3> <ul class="content"> <li><a href="https://www.zakka.com.tw/contact">ååºçè¨æ¿</a></li> <li><a href="https://www.zakka.com.tw/return">ååé/æè²¨</a></li> <li><a href="https://www.zakka.com.tw/account/order/payment">填坫坿¬¾å®</a></li> <li><a href="/guestorder">å¿«éæ¥è¨å®</a></li> </ul> </div> <div class="column span2"> <h3 class="header">å ¶ä»æå</h3> <ul class="content"> <li><a href="https://www.zakka.com.tw/information/news">ææ°æ¶æ¯</a></li> </ul> </div> <div class="column span2"> <h3 class="header">æå¡ä¸å¿</h3> <ul class="content"> <li><a href="https://www.zakka.com.tw/account">æå¡ä¸å¿</a></li> <li><a href="https://www.zakka.com.tw/order">è¨è³¼ç´é</a></li> <li><a href="https://www.zakka.com.tw/wishlist">é¡ææ¸ å® (0)</a></li> </ul> </div> </div> </div> <!-- .row --> </div> <!-- /.footer-inner --> <div class="footer-bottom container "> <div class="row-fluid visible-lg"><div id="facebook-page-container" class="fb-container"></div></div> <div id="footer-copyright" class="row-fluid"> <div id="payment-logo-list" class="pl-container"> <div class="pl-row"> <div class="pl-col" style="background-color: #fff;"><a href="https://pay.line.me/" target="_blank" rel="noopener noreferrer nofollow"><img src="https://cdn.qdm.cloud/assets/linepay/line_all_v2.png" title="æ¡è¿ä½¿ç¨LINE Pay" style="max-height: 40px;padding-top:3px;"/></a></div> </div> </div> <div id="copy"> <p>Copyright ©2026 Zakkaé貨網</p> <p> 601 Zakkaé貨網(å®è¶åéæéå ¬å¸) | 602 çµ±ä¸ç·¨è 28687163 </p> <!--googleoff: index--><span style="display:none;">q6942cbf091f86</span><!--googleon: index--> </div> <div id="qdm-copy"><a href='https://www.zakka.com.tw/googlebase.xml' title="RSS" target='blank'><i class="fa fa-rss"></i></a><a href='https://www.zakka.com.tw/sitemap'>ç¶²ç«å°å</a></div> </div> </div> </footer> <!-- #footer --> <!--googleoff: all--> <div style="display: none"> <div id="pop-welcome-alert"> <p><span style="color:#cc0000;"><strong></strong></span></p> <p> </p> <p><span style="color:#cc0000;"><strong><span style="font-size:14px;"></span></strong></span></p> <p><span style="color:#ff0000;"><strong> </strong></span><a href="https://www.zakka.com.tw/information/news&news_id=1" target="_blank"><img alt="" height="472" onerror="imgError(this);" src="//image-cdn-flare.qdm.cloud/q6942cbf091f86/image/data/2019/08/08/eb75e1b1fffa97b38423de18acde5ef1.jpg" style="float: left;" width="640" /></a></p> <p> </p> </div> </div> <!--googleon: all--> <div class='side_float_banner_wrapper' style='display:none;'><div id='banner_collapse1' class='float_banner_collapse visible-lg sidebar_fix sidebar_fixed_right' onMouseOver='hover_banner_collapse(1,"right")' style='top:0;margin-top:200px;margin-right:20px;'><button class='btn btn-inverse'>æ<br/>æ°<br/>æ´»<br/>å</button></div><div id='float_banner_content_1' class='hidden'><div id='side_float_banner1' class='side_float_banner visible-lg right' onMouseLeave='hoveroff_banner_collapse(1,"right")' style='margin-top:200px;margin-right:20px;'><span class='close_button' title='éé(close)' onclick='close_button_float_banner(1)'><img style='padding-bottom: 4px;' src='//cdn.qdm.cloud/qdm_base/catalog/view/theme/default/images/close_icon.png' width='16' height='16' /></span> <p><a href="https://www.zakka.com.tw/information/news&news_id=1" target="_blank"><img alt="" height="295" onerror="imgError(this);" src="https://image-cdn-flare.qdm.cloud/q6942cbf091f86/image/data/2019/11/06/3274b176ced10061d81dbc98c92f06cf.jpg" width="400" /></a></p> <p><a href="http://bit.ly/2xHkJjv" target="_blank" rel="noopener noreferrer nofollow"><img alt="" height="295" onerror="imgError(this);" src="https://image-cdn-flare.qdm.cloud/q6942cbf091f86/image/data/2019/11/06/85d9362a20e49fc4944dbfe4388c6091.jpg" width="400" /></a></p></div></div></div>
602<script src="https://cdn.qdm.cloud/assets/js/LAB.min.js"></script>
602
602<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
602
602<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/1.4.1/jquery-migrate.min.js"></script>
602
602<script type="text/javascript"> 603 604 $(document).ready(function() { 605 var j = 0; 606 var delay = 3000; 607 function cycleStickyBarTop(){ 608 var jmax = $(".sticky-bar-top .sticky-bar-content").length -1; 609 if(jmax > 0){ 610 $(".sticky-bar-top .sticky-bar-content:eq(" + j + ")") 611 .animate({"opacity" : "1","z-index":"9998"} ,400) 612 .animate({"opacity" : "1","z-index":"9998"}, delay) 613 .animate({"opacity" : "0","z-index":"9"}, 400, function(){ 614 (j == jmax) ? j=0 : j++; 615 cycleStickyBarTop(); 616 }); 617 }else{ 618 $(".sticky-bar-top .sticky-bar-content:eq(" + j + ")") 619 .animate({"opacity" : "1","z-index":"9998"}, delay) 620 } 621 }; 622 cycleStickyBarTop(); 623 624 var i = 0; 625 function cycleStickyBarBottom(){ 626 var imax = $(".sticky-bar-bottom .sticky-bar-content").length -1; 627 if(imax > 0){ 628 $(".sticky-bar-bottom .sticky-bar-content:eq(" + i + ")") 629 .animate({"opacity" : "1","z-index":"9998"} ,400) 630 .animate({"opacity" : "1","z-index":"9998"}, delay) 631 .animate({"opacity" : "0","z-index":"9"}, 400, function(){ 632 (i == imax) ? i=0 : i++; 633 cycleStickyBarBottom(); 634 }); 635 }else{ 636 $(".sticky-bar-bottom .sticky-bar-content:eq(" + i + ")") 637 .animate({"opacity" : "1","z-index":"9998"}, delay) 638 } 639 640 }; 641 cycleStickyBarBottom(); 642 643 var k = 0; 644 function cycleStickyBarTopMobile(){ 645 var kmax = $(".mobile-sticky-bar-top .sticky-bar-content").length -1; 646 if(kmax > 0){ 647 $(".mobile-sticky-bar-top .sticky-bar-content:eq(" + k + ")") 648 .animate({"opacity" : "1","z-index":"9998"} ,400) 649 .animate({"opacity" : "1","z-index":"9998"}, delay) 650 .animate({"opacity" : "0","z-index":"9"}, 400, function(){ 651 (k == kmax) ? k=0 : k++; 652 cycleStickyBarTopMobile(); 653 }); 654 }else{ 655 $(".mobile-sticky-bar-top .sticky-bar-content:eq(" + k + ")") 656 .animate({"opacity" : "1","z-index":"9998"}, delay) 657 } 658 }; 659 cycleStickyBarTopMobile(); 660 661 //COUNTDOWN TIMER 662 $(".sticky-bar-countdown").each(function(){ 663 664 var sticky_bar_date = $(this).attr("data-countdown-date").replace(/-/g,'/'); 665 var sticky_bar_countdown_id = $(this).attr("id"); 666 var countDownDate = new Date(sticky_bar_date).getTime(); 667 668 var x = setInterval(function() { 669 670 var now = new Date().getTime(); 671 672 var distance = countDownDate - now; 673 674 var days = Math.floor(distance / (1000 * 60 * 60 * 24)); 675 var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 676 var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); 677 var seconds = Math.floor((distance % (1000 * 60)) / 1000); 678 679 if(hours<10){ 680 var hours1 = "0"+hours; 681 }else{ 682 var hours1 = hours; 683 } 684 if(minutes<10){ 685 var minutes1 = "0"+minutes; 686 }else{ 687 var minutes1 = minutes; 688 } 689 if(seconds<10){ 690 var seconds1 = "0"+seconds; 691 }else{ 692 var seconds1 = seconds; 693 } 694 695 if( $("#" + sticky_bar_countdown_id).length ) { 696 document.getElementById(sticky_bar_countdown_id).innerHTML = " "+days+ " DAY " + hours1 + ": " 697 + minutes1 + ": " + seconds1 + " "; 698 } 699 700 if (distance < 0) { 701 clearInterval(x); 702 //document.getElementById(sticky_bar_countdown_id).innerHTML = "-"; 703 $("#"+sticky_bar_countdown_id).remove(); 704 } 705 }, 1000); 706 707 }); 708 709 }); 710 711 jQuery.ajaxPrefilter( function( s ) { 712 if ( s.crossDomain ) { 713 s.contents.script = false; 714 } 715 }); 716 717 var loc = window.location.href, index = loc.indexOf('#'); 718 if (index > 0) { 719 try { 720 var urlHash = loc.split("#")[1]; 721 if( urlHash ) { 722 if( $('#' + urlHash).length ) { 723 $('html,body').animate({ 724 scrollTop: $('#' + urlHash).offset().top 725 }, 1200); 726 } else { 727 window.location = loc.substring(0, index) + "&" + loc.substring(index+1); 728 } 729 } 730 } catch(err) { } 731 } 732 733 var readyInitPage = 1; 734 var doAdjust = true; 735 var doAdjustCounter = 0; 736 var jsLoadTimeout = null; 737 var previousWidth = 0; 738 var maxHeight = 0; 739 var flipper_random_status = 1; 740 var float_banner_count = 1; 741 var lazy = 1; 742 var transInitial = -280; 743 var mDistance = 0; 744 745 if (window!= top) top.location.href = location.href; 746 747 //20210713 add menu url target 748 $(".pushy-submenu button span").click(function(){ 749 if($(this).attr("target")){ 750 $(this).removeClass("pushy-submenu-parent"); 751 if($(this).parents("li").hasClass("pushy-submenu-open")){ 752 window.open($(this).data("url"),"_blank"); 753 } 754 } 755 }); 756 757 $(".pushy-menu-storename span").click(function(){ 758 $("#myBody").removeClass("pushy-open-left"); 759 }); 760 761 function getScript(url,success){ 762 var script = document.createElement('script'); 763 script.type = 'text/javascript'; 764 script.src = url; 765 var head=document.getElementsByTagName('head')[0], done=false; 766 script.onload=script.onreadystatechange = function(){ 767 if ( !done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete') ) { 768 done=true; 769 success(); 770 script.onload = script.onreadystatechange = null; 771 head.removeChild(script); 772 } 773 }; 774 head.appendChild(script); 775 } 776 777 function getParams(a){var b=document.getElementsByTagName("script");for(var i=0;i<b.length;i++){if(b[i].src.indexOf("/"+a)>-1){var c=b[i].src.split("?").pop().split("&");var p={};for(var j=0;j<c.length;j++){var d=c[j].split("=");p[d[0]]=d[1]}return p}}return{}} 778 779 function adjustBoxHeights() { 780 maxHeight1 = 270; 781 maxHeight2 = 270; 782 maxHeight3 = 270; 783 maxHeight4 = 270; 784 maxHeight5 = 270; 785 786 $('.content-top .product-box > div').each(function(){ 787 $(this).height('auto'); 788 if (maxHeight2 < $(this).height()) { maxHeight2 = $(this).height(); } 789 }); 790 $('.content-top .product-box > div').each(function(){ 791 if( maxHeight2 ) { 792 $(this).height(maxHeight2); 793 } 794 }); 795 796 $('.content-bottom .product-box > div').each(function(){ 797 $(this).height('auto'); 798 if (maxHeight3 < $(this).height()) { maxHeight3 = $(this).height(); } 799 }); 800 $('.content-bottom .product-box > div').each(function(){ 801 if( maxHeight3 ) { 802 $(this).height(maxHeight3); 803 } 804 }); 805 806 $('.product-grid > div').each(function(){ 807 var img_src = $(this).find(".image img[src]").attr("src"); 808 try { 809 var img_src_ext = img_src.split('.').pop().toLowerCase(); 810 } catch(err) { 811 img_src_ext = ""; 812 } 813 $(this).height('auto'); 814 if( $( "#myBody" ).hasClass("product-category") ){ 815 img_src_ext = ""; 816 } 817 if( img_src_ext != "gif" ) { 818 if (maxHeight1 < $(this).height()) { maxHeight1 = $(this).height(); } 819 } else { 820 $(this).addClass("gif-tag"); 821 } 822 }); 823 var img_gif_height = 0; 824 $('.product-grid > div').each(function(){ 825 var img_src = $(this).find(".image img[src]").attr("src"); 826 try { 827 var img_src_ext = img_src.split('.').pop().toLowerCase(); 828 } catch(err) { 829 img_src_ext = ""; 830 } 831 if( maxHeight1 ){ 832 $(this).height(maxHeight1); 833 if( img_src_ext != "gif" ) { 834 img_gif_height = $(this).find(".image img").height(); 835 } 836 } 837 }); 838 $('.product-grid > div.gif-tag').attr("style",""); 839 if( img_gif_height ) { 840 $('.product-grid > div.gif-tag').find(".image img").attr("style","height:" + img_gif_height + "px;width:auto;"); 841 } 842 843 $('.box-content').each(function(index,elmain){ 844 $(elmain).find('.product-box').each(function(index,el){ 845 maxHeight1 = 0; 846 $(el).find('.grid-box').each(function(index,el2){ 847 $(el2).height('auto'); 848 }); 849 $(el).find('.grid-box .inner').each(function(index,el2){ 850 if (maxHeight1 < $(el2).height()) { maxHeight1 = $(el2).height(); } 851 }); 852 maxHeight1 = maxHeight1 + 18; 853 $(el).find('.grid-box').each(function(index,el2){ 854 if( maxHeight1 ) { 855 $(el2).height(maxHeight1); 856 } 857 }); 858 }); 859 }); 860 861 $('#related-products').each(function(index,elmain){ 862 $(elmain).imagesLoaded(function(){ 863 $(this).find('.product-box').each(function(index,el){ 864 maxHeight1 = 0; 865 $(el).find('.grid-box').each(function(index,el2){ 866 $(el2).height('auto'); 867 }); 868 $(el).find('.grid-box .inner').each(function(index,el2){ 869 if (maxHeight1 < $(el2).height()) { maxHeight1 = $(el2).height(); } 870 }); 871 maxHeight1 = maxHeight1 + 36; 872 if( maxHeight1 < 220 ) maxHeight1 = 220; 873 if( !is.mobile() ) { 874 if( maxHeight1 < 340 ) maxHeight1 = 340; 875 } 876 $(el).find('.grid-box').each(function(index,el2){ 877 if( maxHeight1 ) { 878 $(el2).height(maxHeight1); 879 } 880 }); 881 }); 882 }); 883 }); 884 885 $('.content-bottom #related-products').each(function(index,elmain){ 886 var contentset_height = parseInt($('.content-bottom #related-products .contentset').height()); 887 if( contentset_height ) contentset_height = contentset_height + 70; 888 $(elmain).imagesLoaded(function(){ 889 $(this).find('.product-box').each(function(index,el){ 890 maxHeight1 = 0; 891 $(el).find('.grid-box').each(function(index,el2){ 892 $(el2).height('auto'); 893 }); 894 $(el).find('.grid-box .inner').each(function(index,el2){ 895 if (maxHeight1 < $(el2).height()) { maxHeight1 = $(el2).height(); } 896 }); 897 maxHeight1 = maxHeight1 + 36 + contentset_height; 898 if( maxHeight1 < 220 ) maxHeight1 = 220; 899 if( !is.mobile() ) { 900 if( maxHeight1 < 340 ) maxHeight1 = 340; 901 } 902 $(el).find('.grid-box').each(function(index,el2){ 903 if( maxHeight1 ) { 904 $(el2).height(maxHeight1); 905 } 906 }); 907 }); 908 }); 909 }); 910 911 $('.any-products').each(function(index,el){ 912 913 if(is.mobile()){ 914 $(el).find(".grid-box").attr("style",""); 915 } 916 917 maxHeight5 = 0; 918 $(el).find('.any-box > div').each(function(index,el2){ 919 $(el2).height('auto'); 920 if (maxHeight5 < $(el2).height()) { maxHeight5 = $(el2).height(); } 921 }); 922 $(el).find('.any-box > div').each(function(index,el2){ 923 if( maxHeight5 ) { 924 $(el2).height(maxHeight5); 925 } 926 }); 927 $(el).find('.grid-box > .inner').each(function(index,el2){ 928 $(el2).css("display", "block"); 929 }); 930 }); 931 } 932
933 var supportsNatural = ( "naturalWidth" in (new Image()) ); 934 935 function initDeferImages() { 936 [].forEach.call(document.querySelectorAll('img[data-src]'), function(img) { 937 img.setAttribute('src', img.getAttribute('data-src')); 938 img.onload = function() { 939 this.removeAttribute('data-src'); 940 if (this.style.opacity !== undefined) { 941 this.style.opacity = 1; 942 } 943 var naturalWidth = supportsNatural ? this.naturalWidth : $(this).width(); 944 if( naturalWidth == 0 ) { 945 this.src += '?timestamp=' + new Date().getTime(); 946 } 947 }; 948 }); 949 $(".grid-box img,.product-row img").each(function(){ 950 var _this = $(this); 951 _this.imagesLoaded(function(){ 952 _this.animate({opacity: 1.0}, 100); 953 _this.closest('.grid-box').find('.onsale').removeClass("hidden"); 954 _this.closest('.grid-box').find('.name').removeClass("hidden"); 955 _this.closest('.grid-box').find('.price').removeClass("hidden"); 956 _this.closest('.grid-box').find('.label-important').removeClass("hidden"); 957 _this.closest('.grid-box').find('.load-thumb-conver').remove(); 958 _this.closest('.product-row').find('.load-thumb-conver').remove(); 959 try { 960 if (typeof _this.data('flipper') !== 'undefined') { 961 _this.flipper(); 962 } 963 } catch(err) { } 964 _this.height('auto'); 965 if( (lazy == $(".grid-box img").length) ) { adjustBoxHeights(); } 966 lazy++; 967 }); 968 }); 969 } 970 971 function updateCartProductCount() { 972 $.get("index.php?route=module/cart/GetProductTotal", function(data) { 973 $("#shopping-cart-list .badge").html(data); 974 if(data>0){ 975 $("#shopping-cart-list .badge").removeClass("hidden"); 976 $("#shopping-cart-list .badge").removeClass("animated"); 977 $("#shopping-cart-list .badge").addClass("animated bounce"); 978 } else { 979 $("#shopping-cart-list .badge").addClass("hidden"); 980 } 981 }); 982 } 983 984 function updateQuantityByProductKey(key, quantity) { 985 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 986 $.ajax({ 987 url: 'index.php?route=checkout/cart/updateProductQuantity', 988 type: 'post', 989 data: { 'quantity':quantity, 'key': key }, 990 dataType: 'json', 991 success: function(json) { 992 $.get( "index.php?route=module/cart/list", function( data ) { 993 $(".slidePanel .slidePanel-content").html(data); 994 updateCartProductCount(); 995 }); 996 } 997 }); 998 } 999 1000 function removeProductFromSideCart(key, idx) { 1001 //var newkey = encodeURIComponent(key); 1002 var newkey = key; 1003 $.get("index.php?route=module/cart&remove=" + newkey, function(data) { 1004 $.get( "index.php?route=module/cart/list", function( data ) { 1005 $(".slidePanel .slidePanel-content").html(data); 1006 updateCartProductCount(); 1007 }); 1008 }); 1009 $("#producr-list-" + idx).fadeOut(1200, function() { $(this).remove(); }); 1010 return false; 1011 } 1012 1013 function openSideCart(ta_product_id){ 1014 var slidePanelVisible = $(".slidePanel").hasClass("slidePanel-show"); 1015 if( slidePanelVisible ) { 1016 $("#content-wrapper").off("click"); 1017 $.slidePanel.hide(); 1018 } else { 1019 updateCartProductCount(); 1020 $.slidePanel.show({ 1021 url: 'index.php?route=module/cart/list' 1022 }, { 1023 direction: "left", 1024 duration: '500', 1025 mouseDrag: false, 1026 touchDrag: false, 1027 pointerDrag: false, 1028 loading: { 1029 template: function(options) { 1030 return '<div class="' + options.classes.loading + '"><div class="spinner"><i class="fa fa-circle-o-notch fa-spin fa-3x fa-fw"></i><span class="sr-only">Loading...</span></div></div>'; 1031 } 1032 } 1033 }); 1034 $("#content-wrapper").on('click', function(event) { 1035 $("#content-wrapper").off("click"); 1036 $.slidePanel.hide(); 1037 event.preventDefault(); 1038 event.stopPropagation(); 1039 1040 var t_url = location.href; 1041 var c_url = "https://www.zakka.com.tw/cart"; 1042 1043 if(t_url == c_url){ 1044 location.reload(); 1045 } 1046 1047 }); 1048 $(".fancybox-product").on('click', function(event) { 1049 $.slidePanel.hide(); 1050 event.preventDefault(); 1051 event.stopPropagation(); 1052 1053 var t_url = location.href; 1054 var c_url = "https://www.zakka.com.tw/cart"; 1055 1056 if(t_url == c_url){ 1057 location.reload(); 1058 } 1059 1060 }); 1061 } 1062 } 1063 1064 function gaTrackAddToCart(page, product_ids) { 1065 1066 product_ids.forEach(function(item){ 1067 1068 try { 1069 1070 // UA 1071 dataLayer.push({ 1072 'event': 'addToCart', 1073 'ecommerce': { 1074 'currencyCode': '', 1075 'add': { 1076 'products': [{ 1077 'name': item.p_name, 1078 'id': item.p_id, 1079 'price': item.p_prices, 1080 'quantity': item.p_qty 1081 }] 1082 } 1083 } 1084 }); 1085 1086 // GA4 1087 dataLayer.push({ 1088 'event': 'add_to_cart', 1089 'ecommerce': { 1090 'items': [{ 1091 'item_name': item.p_name, 1092 'item_id': item.p_id, 1093 'price': item.p_prices, 1094 'quantity': item.p_qty 1095 }] 1096 } 1097 }); 1098 1099 global_quuid = QUUID(); 1100 var item_p_prices = parseFloat(item.p_prices); 1101 item_p_prices = Number(item_p_prices); 1102 if( isNaN(item_p_prices) ) { 1103 item_p_prices = 0; 1104 } 1105 fbq('track', 'AddToCart', { 1106 content_name: item.p_name, 1107 content_ids: [item.p_id], 1108 content_type: 'product', 1109 value: item_p_prices, 1110 currency: 'TWD' 1111 }, {eventID: global_quuid + "ccc"}); 1112 1113 // fb-capi-coverage Step 2: ç¨ç¶å item è¦å¯« gecommProductToCartï¼ 1114 // ç¢ºä¿ CAPI AddToCart éçæ¯ãæ¬æ¬¡è¿ä»£ååãèéè¿´åçµææ®ççæå¾ä¸åã 1115 gecommProductToCart.product_id = item.p_id; 1116 gecommProductToCart.quantity = item.p_qty; 1117 gecommProductToCart.product_name = item.p_name; 1118 gecommProductToCart.price = item.p_prices; 1119 1120 1121 1122 } catch (e) { } 1123 1124 }); 1125 1126 } 1127
1128 // Defers instant-add until the async-loaded $.fancybox exists, so early 1129 // clicks no longer hit an undefined open() and feel dead. One poller at a 1130 // time, latest click wins - repeated clicks don't stack duplicate opens. 1131 // Keep in sync with common/footer_cart.tpl (same guard for '/cart' URLs). 1132 var _fancyboxPendingCb = null; 1133 var _fancyboxPolling = false; 1134 function whenFancyboxReady(callback){ 1135 if (typeof $.fancybox !== 'undefined') { callback(); return; } 1136 _fancyboxPendingCb = callback; // latest click wins if several arrive while waiting 1137 if (_fancyboxPolling) { return; } 1138 _fancyboxPolling = true; 1139 (function poll(attempt){ 1140 if (typeof $.fancybox !== 'undefined') { 1141 _fancyboxPolling = false; 1142 var cb = _fancyboxPendingCb; 1143 _fancyboxPendingCb = null; 1144 if (cb) { cb(); } 1145 return; 1146 } 1147 if (attempt < 50) { setTimeout(function(){ poll(attempt + 1); }, 100); return; } 1148 _fancyboxPolling = false; 1149 _fancyboxPendingCb = null; 1150 if (window.console && console.warn) { console.warn('fancybox not ready after 5s; instant add aborted'); } 1151 })(0); 1152 } 1153 1154 function InstantAddToCart(product_id, quantity, promotion_id, free_present_id){ 1155 1156 if( product_id && quantity ) { 1157 1158 gecommProductToCart.product_id = product_id; 1159 gecommProductToCart.quantity = quantity; 1160 1161 try { 1162 1163 var p_name = $("[data-producttlid='"+product_id+"'] .name [itemprop='name']").html(); 1164 var p_prices = $("[data-producttlid='"+product_id+"'] .price[data-price]").data("price"); 1165 gecommProductToCart.product_name = p_name; 1166 1167 gecommProductToCart.price = p_prices; 1168 1169 // UA 1170 dataLayer.push({ 1171 'event': 'addToCart', 1172 'ecommerce': { 1173 'currencyCode': '', 1174 'add': { 1175 'products': [{ 1176 'name': p_name, 1177 'id': product_id, 1178 'price': p_prices, 1179 'quantity': quantity 1180 }] 1181 } 1182 } 1183 }); 1184 1185 // GA4 1186 dataLayer.push({ 1187 'event': 'add_to_cart', 1188 'ecommerce': { 1189 'items': [{ 1190 'item_name': p_name, 1191 'item_id': product_id, 1192 'price': p_prices, 1193 'quantity': quantity 1194 }] 1195 } 1196 }); 1197 1198 1199 global_quuid = QUUID(); 1200 var item_p_prices = parseFloat(p_prices); 1201 item_p_prices = Number(item_p_prices); 1202 if( isNaN(item_p_prices) ) { 1203 item_p_prices = 0; 1204 } 1205 fbq('track', 'AddToCart', { 1206 content_name: p_name, 1207 content_ids: [product_id], 1208 content_type: 'product', 1209 value: item_p_prices, 1210 currency: 'TWD' 1211 }, {eventID: global_quuid + "ccc"}); 1212 1213 1214 1215 1216 1217 1218 1219 1220 } catch (e) { } 1221 1222 } 1223 1224 $('[data-toggle="tooltip"], .tooltip').tooltip("hide"); 1225 1226 promotion_id = typeof(promotion_id) != 'undefined' ? promotion_id : -1; 1227 free_present_id = typeof(free_present_id) != 'undefined' ? free_present_id : -1; 1228 1229 if(free_present_id != "-1"){ 1230 quantity = $('input[name="quantity"]').val(); 1231 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 1232 } 1233 1234 var price = $('#price-price-block .price-normal').attr('data-content'); 1235 1236 if(typeof(price) === 'undefined') price = $('#price-price-block .price-new').attr('data-content'); 1237 1238 price = typeof(price) != 'undefined' ? price : 0; 1239 1240 var instantCartSrc = 'https://www.zakka.com.tw/index.php?route=product/instant_add&product_id=' + product_id + '&promotion_id=' + promotion_id + '&quantity=' + quantity +'&price=' + price + '&free_present_id=' + free_present_id; 1241 1242 whenFancyboxReady(function(){ 1243 try { 1244 $.fancybox.open({ 1245 src : instantCartSrc, 1246 type : 'iframe', 1247 opts : { 1248 openEffect : 'none', 1249 closeEffect : 'none', 1250 closeClickOutside : true, 1251 iframe : { css : { "max-width" : '332px', "width:": '100%' } }, 1252 beforeLoad: function() { 1253 $(".fancybox-container").css("zIndex", 999999993); 1254 } 1255 } 1256 }); 1257 } catch (e) { } 1258 }); 1259 } 1260 1261 function InstantAddToCart1(product_id, quantity, key_id, type, position){ 1262 1263 product_id = (typeof product_id !== 'undefined') ? product_id : 0; 1264 quantity = (typeof quantity !== 'undefined') ? quantity : 1; 1265 key_id = (typeof key_id !== 'undefined') ? key_id : "-1"; 1266 type = (typeof type !== 'undefined') ? type : ""; 1267 position = (typeof position !== 'undefined') ? position : ""; 1268 1269 if( product_id && quantity ) { 1270 1271 gecommProductToCart.product_id = product_id; 1272 gecommProductToCart.quantity = quantity; 1273 1274 try { 1275 1276 var p_name = $("[data-producttlid='"+product_id+"'] .name [itemprop='name']").html(); 1277 var p_prices = $("[data-producttlid='"+product_id+"'] .price[data-price]").data("price"); 1278 gecommProductToCart.product_name = p_name; 1279 1280 gecommProductToCart.price = p_prices; 1281 1282 // UA 1283 dataLayer.push({ 1284 'event': 'addToCart', 1285 'ecommerce': { 1286 'currencyCode': '', 1287 'add': { 1288 'products': [{ 1289 'name': p_name, 1290 'id': product_id, 1291 'price': p_prices, 1292 'quantity': quantity 1293 }] 1294 } 1295 } 1296 }); 1297 1298 // GA4 1299 dataLayer.push({ 1300 'event': 'add_to_cart', 1301 'ecommerce': { 1302 'items': [{ 1303 'item_name': p_name, 1304 'item_id': product_id, 1305 'price': p_prices, 1306 'quantity': quantity 1307 }] 1308 } 1309 }); 1310 1311 global_quuid = QUUID(); 1312 var item_p_prices = parseFloat(p_prices); 1313 item_p_prices = Number(item_p_prices); 1314 if( isNaN(item_p_prices) ) { 1315 item_p_prices = 0; 1316 } 1317 fbq('track', 'AddToCart', { 1318 content_name: p_name, 1319 content_ids: [product_id], 1320 content_type: 'product', 1321 value: item_p_prices, 1322 currency: 'TWD' 1323 }, {eventID: global_quuid + "ccc"}); 1324 1325 1326 1327 1328 1329 1330 1331 } catch (e) { } 1332 1333 } 1334 1335 $('[data-toggle="tooltip"], .tooltip').tooltip("hide"); 1336 1337 if(type == "promotion"){ 1338 var promotion_id = typeof(key_id) != 'undefined' ? key_id : -1; 1339 var send_value = '&promotion_id=' + promotion_id ; 1340 } 1341 1342 if(type == "present"){ 1343 var free_present_id = typeof(key_id) != 'undefined' ? key_id : -1; 1344 1345 //if(free_present_id > 0){ 1346 quantity = $('input[name="quantity"]').val(); 1347 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 1348 //} 1349 1350 var send_value = '&free_present_id=' + free_present_id +'&position=' + position; 1351 } 1352 1353 if(type == "buytogether"){ 1354 var buy_together_id = typeof(key_id) != 'undefined' ? key_id : -1; 1355 1356 quantity = $('input[name="quantity"]').val(); 1357 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 1358 1359 var send_value = '&buy_together_id=' + buy_together_id +'&position=' + position; 1360 } 1361 1362 var price = $('#price-price-block .price-normal').attr('data-content'); 1363 1364 if(typeof(price) === 'undefined') price = $('#price-price-block .price-new').attr('data-content'); 1365 1366 price = typeof(price) != 'undefined' ? price : 0; 1367 1368 1369 var instantCart1Src = 'index.php?route=product/instant_add&product_id=' + product_id + '&quantity=' + quantity +'&price=' + price +send_value ; 1370 1371 whenFancyboxReady(function(){ 1372 try { 1373 $.fancybox.open({ 1374 src : instantCart1Src, 1375 type : 'iframe', 1376 opts : { 1377 closeClickOutside : true, 1378 iframe : { css : { width : '320px' } }, 1379 beforeLoad: function() { 1380 $(".fancybox-container").css("zIndex", 999999993); 1381 } 1382 } 1383 }); 1384 } catch (e) { } 1385 }); 1386 } 1387 1388 // Debounced mini-cart reload: every module/cart hit rewrites server-side 1389 // cart state, so a burst of reloads can undo a just-added product. 1390 // Keep in sync with common/footer_cart.tpl -- only one footer renders per page 1391 // (common/footer.php picks a single template), so the two copies never collide. 1392 var miniCartReloadTimer = null; 1393 function reloadMiniCart(immediate){ 1394 // One shared timer for every caller; immediate only shortens the wait. 1395 // Bypassing it made add-to-cart fire two overlapping module/cart requests
1396 // (closePopFancybox() and TriggerMyCartList() each trigger mouseover). 1397 // Rescheduling is not a lock, so this is "almost always one", not a guarantee. 1398 clearTimeout(miniCartReloadTimer); 1399 miniCartReloadTimer = setTimeout(loadMiniCart, immediate ? 0 : 300); 1400 } 1401 1402 function loadMiniCart(){ 1403 $("#cart").load("index.php?route=module/cart #cart > *", function(){ 1404 try { refreshMiniCartScrollBar(); } catch (e) { } 1405 }); 1406 } 1407 1408 function closePopFancybox(){ 1409 try { 1410 $.fancybox.close(); 1411 $.fancybox.destroy(); 1412 } catch (e) { } 1413 if( is.desktop() ) { 1414 setTimeout(function(){ 1415 $("#cart > .heading a").trigger('mouseover'); 1416 setTimeout(function(){ refreshMiniCartScrollBar(); }, 300); 1417 }, 500); 1418 } 1419 } 1420 1421 function LastPresentsOption(html,key,qty){ 1422 $("#lg_option_"+key).prepend(html); 1423 $('.last_free_presents').trigger('change'); 1424 $('.free_present_qty').trigger('change'); 1425 } 1426 1427 function TriggerMyCartList(){ 1428 if( is.not.desktop() ){ 1429 updateCartProductCount(); 1430 setTimeout(function(){ 1431 $("#shopping-cart-list .badge").removeClass("animated"); 1432 $("#shopping-cart-list .badge").addClass("animated"); 1433 $("#shopping-cart-list .badge").addClass("bounce"); 1434 }, 800); 1435 } else { 1436 setTimeout(function(){ 1437 $("#cart > .heading a").trigger('mouseover'); 1438 setTimeout(function(){ refreshMiniCartScrollBar(); }, 300); 1439 }, 500); 1440 } 1441 } 1442 1443 function removeCartByProductID(product_id) { 1444 if( is.existy(product_id) ) { 1445 $.ajax({ 1446 url: 'index.php?route=module/cart&remove=' + product_id + "%3Anull%3A-1%3A0", 1447 type: 'post', 1448 dataType: 'json', 1449 success: function(json) { 1450 TriggerMyCartList(); 1451 } 1452 }); 1453 } 1454 } 1455 1456 function updateQuantityByProductID(product_id, quantity) { 1457 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 1458 $.ajax({ 1459 url: 'index.php?route=checkout/cart/updateProductQuantity', 1460 type: 'post', 1461 data: { 'quantity':quantity, 'key': product_id+'%3Anull%3A-1%3A0' }, 1462 dataType: 'json', 1463 success: function(json) { 1464 TriggerMyCartList(); 1465 } 1466 }); 1467 } 1468 1469 1470 function bulk_add_to_cart() { 1471 $("select.bulk-add-quantity").change(function() { 1472 var value = $("option:selected", this).val(); 1473 var select_idx = $(this).data("idx"); 1474 var product_id = $(this).data("productid"); 1475 var prevval = $(this).data("prevval"); 1476 1477 if( value == 0 ) { 1478 $(this).next(".bulk-add-quantity").addClass("no-cart"); 1479 if(prevval!=0){ 1480 removeCartByProductID(product_id); 1481 } 1482 } else { 1483 $(this).next(".bulk-add-quantity").removeClass("no-cart"); 1484 1485 if( value == 999 ) { 1486 InstantAddToCart(product_id, 999); 1487 $(this).next(".bulk-add-quantity").find(".current").text("+ 9"); 1488 } else { 1489 if(prevval==0){ 1490 // ç¬¬ä¸æ¬¡å å ¥ 1491 InstantAddToCart(product_id, value); 1492 } else { 1493 // æ´æ°æ¸é 1494 updateQuantityByProductID(product_id, value); 1495 } 1496 } 1497 } 1498 $(this).data("prevval", value); 1499 $(this).attr("data-prevval", value); 1500 }); 1501 } 1502 1503 function downloadJSAtOnload() { 1504 1505 $("#myBody").removeAttr('style'); 1506 1507 if( is.not.desktop() ) { 1508 $('.any-products').each(function(index,el){ 1509 $(el).find('.grid-box').each(function(index,el2){ 1510 $(el2).attr('style',''); 1511 }); 1512 }); 1513 } 1514 1515 try { 1516 getScript("https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js",function(){ }); 1517 } catch(e) { } 1518 1519 1520 var queue = $LAB.queueScript("https://cdn.qdm.cloud/assets/js/core.240901.compressed.js"); 1521 queue.queueWait(function(){ 1522 1523 // core.js reloads module/cart on EVERY mini-cart hover, unthrottled (10 1524 // requests in 5s observed). Rebind to the debounced reload, keeping 1525 // hover-to-expand behaviour. The mouseleave rebind is like-for-like: in 1526 // core.240901 (the bundle queued above) its body is only 1527 // removeClass("active"). Re-check if that bundle is rebuilt. 1528 // Keep in sync with common/footer_cart.tpl -- it queues a different 1529 // bundle, so verify that claim against ITS bundle. 1530 // 1531 // The ready() wrapper is load-bearing: core.js binds inside its own 1532 // ready() callback, registered while this queued script runs, and jQuery 1533 // fires ready callbacks in registration order -- so off() is guaranteed to 1534 // run after that bind. Calling off() directly here only works if DOM ready 1535 // happens to have fired already; otherwise it removes nothing and BOTH 1536 // handlers stay attached.
1537 $(document).ready(function(){ 1538 try { 1539 $(document).off("mouseover", "#cart > .heading"); 1540 $(document).on("mouseover", "#cart > .heading", function(e){ 1541 $("#cart").addClass("active"); 1542 // Programmatic refreshes get here via .trigger('mouseover') (add-to-cart / 1543 // fancybox close / login). Debouncing them delayed the reload past each 1544 // call site's paired setTimeout(refreshMiniCartScrollBar, 300). jQuery 1545 // marks synthetic events with isTrigger; losing that just falls back to 1546 // the debounced path. 1547 reloadMiniCart(e && e.isTrigger); 1548 }); 1549 $(document).off("mouseleave", "#cart"); 1550 $(document).on("mouseleave", "#cart", function(){ 1551 $(this).removeClass("active"); 1552 }); 1553 } catch (e) { 1554 // Never break the rest of the queued callback, but do not fail 1555 // silently either -- a swallowed error degrades straight back to 1556 // the unthrottled reload. 1557 if (window.console && console.warn) { console.warn("mini-cart rebind failed", e); } 1558 } 1559 1560 // Self-check. off(type, selector) matches on the selector STRING, so a whitespace 1561 // variant alone breaks it: a rebuilt bundle emitting "#cart>.heading" survives our 1562 // off() and BOTH handlers stay attached. Both spellings hit the same element, so 1563 // compare with whitespace stripped -- that covers drift on either side. 1564 // Known limit: whitespace is the ONLY rewrite covered. "#cart .heading", a trailing 1565 // " a", a comma-separated selector or a direct element bind all stay silent. 1566 // A tripwire for the likely case, not proof that the rebind held. 1567 // _data is a jQuery internal, so it gets its own try/catch: if it ever goes away, 1568 // the rebind above is still correct and must not be reported failed. 1569 try { 1570 var miniCartEvents = $._data(document, "events"); 1571 var miniCartBound = ((miniCartEvents && miniCartEvents.mouseover) || []).filter(function(h){ 1572 return h.selector && h.selector.replace(/\s+/g, "") === "#cart>.heading"; 1573 }).length; 1574 if (miniCartBound !== 1 && window.console && console.warn) { 1575 console.warn("mini-cart rebind: expected 1 mouseover handler, found", miniCartBound); 1576 } 1577 } catch (e2) { 1578 if (window.console && console.warn) { console.warn("mini-cart rebind self-check unavailable", e2); } 1579 } 1580 }); 1581 1582 1583 1584 $(".ajax-popup-link").unbind(); 1585 $(".ajax-popup-link").fancybox({ 1586 closeBtn : true, 1587 closeClick : true, 1588 helpers : { 1589 overlay : {closeClick: true} 1590 }, 1591 buttons : [ 'close' ], 1592 clickOutside : 'close', 1593 closeClick : true, 1594 toolbar : true 1595 }); 1596 1597 if( is.empty($.cookie('pop_welcome_alert_q6942cbf091f86')) || is.null($.cookie('pop_welcome_alert_q6942cbf091f86')) ){ 1598 if (localStorage.getItem('pop_first_time') === "undefined" || localStorage.getItem('pop_first_time') === null) { 1599 $.cookie('pop_welcome_alert_q6942cbf091f86', '1', { expires: 1, path: '/' }); 1600 setTimeout(function(){ 1601 if (localStorage.getItem("pop_first_time") === null) { 1602 swal({ 1603 title: "", 1604 text: $("#pop-welcome-alert").html(), 1605 html: true, 1606 allowOutsideClick: true, 1607 confirmButtonText: "éé", 1608 confirmButtonColor: "#000" 1609 }); 1610 $(".showSweetAlert").find("fieldset").remove(); 1611 if( is.mobile() ){ $(".showSweetAlert").attr("style", "display: block; margin-top: -70%;"); } 1612 } 1613 localStorage.setItem('pop_first_time', true); 1614 }, 1500); 1615 } 1616 } 1617 1618 var milliseconds = new Date().getTime(); 1619 $.getJSON( "index.php?route=common/header/getLoggedInUserInfo&token=" + milliseconds + "1" + (Math.floor(Math.random() * 999) + 100), function( data ) { 1620 if( is.existy(data) && data.isLogged ) { 1621 $("#header-logged-user").html(data.logged_user_name + data.logged_group_name); 1622 $("#header-mobile-user").html(data.logged_user_name + data.logged_group_name); 1623 $(".header-logged-menu").removeClass("hidden"); 1624 $("#header-logged-menu").removeClass("hidden"); 1625 $("#header-none-logged-menu").remove(); 1626 } else { 1627 $(".header-logged-menu").remove(); 1628 $("#header-logged-menu").remove(); 1629 $(".header-none-logged-menu").removeClass("hidden"); 1630 $("#header-none-logged-menu").removeClass("hidden"); 1631 } 1632 1633 if( is.not.desktop() ){ 1634 updateCartProductCount(); 1635 setTimeout(function(){ 1636 $("#shopping-cart-list .badge").removeClass("animated"); 1637 $("#shopping-cart-list .badge").addClass("animated"); 1638 $("#shopping-cart-list .badge").addClass("bounce"); 1639 }, 800); 1640 } else { 1641 $("#cart > .heading a").trigger('mouseover'); 1642 $("section#cart").removeClass("active"); 1643 setTimeout(function(){ $("section#cart").removeClass("active"); }, 50); 1644 } 1645 1646 }); 1647 1648 setTimeout(function(){ 1649 $('.side_float_banner_wrapper').attr("style",""); 1650 $('.banner').each(function( index ) { 1651 if( $(this).find("a").length == 1 ) { 1652 $(this).attr("style",""); 1653 } 1654 }); 1655 }, 2000); 1656 1657 if (typeof init_inline === 'function') { 1658 if($("#image-additional").length){ 1659 $.fancybox.defaults.hash = false;
1660 } 1661 setTimeout(function(){ init_inline(); }, 300); 1662 } 1663 1664 if (typeof init_fullslideshow === 'function') { init_fullslideshow(); } 1665 1666 $("#contact-block").removeAttr('style'); 1667 1668 if( is.not.desktop() ) { 1669 $('#shopping-cart-list').on('click', function() { 1670 openSideCart(); 1671 return false; 1672 }); 1673 } 1674 1675 if ( $("input[name='quantity']").length > 0 ) { 1676 var qtyMin = $("input[name='quantity']").data("min"); 1677 if(qtyMin=="" || qtyMin==undefined) qtyMin = 1; 1678 $("input[name='quantity']").TouchSpin({ 1679 min: qtyMin, 1680 max: 99999 1681 }); 1682 } 1683 1684 $(window).resize(function() { 1685 if( $(window).width() < 992 ){ 1686 $("#footer-inner-row").removeClass("offset2"); 1687 } else { 1688 var data_count = $("#footer-inner-row").data("count"); 1689 if(data_count < 1) { 1690 $("#footer-inner-row").addClass("offset2"); 1691 } 1692 } 1693 }); 1694 1695 $("#header .flipper").each(function(){ 1696 var imgLoad = $(this).imagesLoaded(function(){ 1697 try { 1698 if (typeof $(this).data('flipper') !== 'undefined') { 1699 $(this).flipper(); 1700 } 1701 } catch(err) { } 1702 }); 1703 }); 1704 1705 $('a[href*="#"]').each(function() { 1706 var hash = $(this).attr('href'); 1707 if(hash=="##") return; 1708 if(hash=="#") return; 1709 if(hash=="#mobile-menu") return; 1710 $(this).click( function(e) { 1711 var url = $(this).attr('href'); 1712 var type = url.split('#'); 1713 var hash = ''; 1714 if(type.length > 1) 1715 hash = type[1]; 1716 if($("[name='"+hash+"']").length){ 1717 if(hash && hash != "undefined" && hash != null && hash != undefined){ 1718 e.preventDefault(); 1719 $('html,body').animate({ scrollTop: $("[name='"+hash+"']").offset().top}, 600); 1720 return false; 1721 } 1722 } 1723 }); 1724 }); 1725 1726 1727 1728 1729 1730 if ( $(".masonry").length > 0 ) { 1731 $(".masonry").each(function(index, value) { 1732 var $grid = $('.masonry').masonry(); 1733 setTimeout(function(){ $grid.masonry('layout'); }, 2000); 1734 }); 1735 } 1736 1737 if ( $(".owl-carousel").length > 0 ) { 1738 $(".owl-carousel").not('[data-exclude]').each(function(index, value) { 1739 1740 var autoplay = is.null( $(this).attr('data-autoPlay') ) ? true : $(this).attr('data-autoPlay'); 1741 var pagination = is.null( $(this).attr('data-pagination') ) ? false : $(this).attr('data-pagination'); 1742 var slideSpeed = is.null( $(this).attr('data-slideSpeed') ) ? 200 : $(this).attr('data-slideSpeed'); 1743 var paginationSpeed = is.null( $(this).attr('data-paginationSpeed') ) ? 800 : $(this).attr('data-paginationSpeed'); 1744 var singleItem = is.null( $(this).attr('data-singleItem') ) ? true : $(this).attr('data-singleItem'); 1745 var transitionStyle = is.null( $(this).attr('data-transitionStyle') ) ? "fade" : $(this).attr('data-transitionStyle'); 1746 1747 $(this).owlCarousel({ 1748 autoPlay : Boolean(autoplay), 1749 navigation : false, 1750 pagination : Boolean(pagination), 1751 slideSpeed : slideSpeed, 1752 paginationSpeed : paginationSpeed, 1753 singleItem: Boolean(singleItem), 1754 transitionStyle : transitionStyle, 1755 stopOnHover: true, 1756 autoHeight: true 1757 }); 1758 1759 }); 1760 } 1761 1762 1763 var vidDefer = document.getElementsByTagName('iframe'); 1764 for (var i=0; i<vidDefer.length; i++) { 1765 if(vidDefer[i].getAttribute('data-src')) { 1766 vidDefer[i].setAttribute('src',vidDefer[i].getAttribute('data-src')); 1767 } 1768 } 1769 1770 $(".fancybox").fancybox({ 1771 closeBtn: false, 1772 padding : 1, 1773 helpers : { 1774 overlay : { 1775 closeClick : true, 1776 speedOut : 200, 1777 showEarly : true, 1778 css : {}, 1779 locked : true 1780 }, 1781 title : { type : 'inside' }, 1782 buttons : {} 1783 } 1784 }); 1785 1786 1787 if( is.not.desktop() ){ 1788 $("#footer-inner-row").removeClass("offset2"); 1789 } 1790 1791 if ( $('#bestseller-products .flexslider').length > 0 ) { 1792 $('#bestseller-products .flexslider').each(function(index, value) { 1793 $(this).flexslider({ 1794 animation: "slide", 1795 animationLoop: true, 1796 itemWidth: 182, 1797 itemMargin: 3, 1798 minItems: 2, 1799 maxItems: 6, 1800 animationSpeed: 700, 1801 touch: true, 1802 slideshowSpeed: 3000 }); 1803 }); 1804 } 1805 if ( $('#featured-products .flexslider').length > 0 ) { 1806 $('#featured-products .flexslider').each(function(index, value) { 1807 $(this).flexslider({ 1808 animation: "slide", 1809 animationLoop: true, 1810 itemWidth: 182, 1811 itemMargin: 3, 1812 minItems: 2, 1813 maxItems: 6, 1814 animationSpeed: 700, 1815 touch: true, 1816 slideshowSpeed: 3000 }); 1817 }); 1818 } 1819 if ( $('#latest-products .flexslider').length > 0 ) { 1820 $('#latest-products .flexslider').each(function(index, value) { 1821 $(this).flexslider({ 1822 animation: "slide", 1823 animationLoop: true, 1824 itemWidth: 182, 1825 itemMargin: 3, 1826 minItems: 2, 1827 maxItems: 6, 1828 animationSpeed: 700, 1829 touch: true, 1830 slideshowSpeed: 3000 }); 1831 }); 1832 } 1833 if ( $('#related-products .flexslider').length > 0 ) { 1834 $('#related-products .flexslider').each(function(index, value) { 1835 $(this).flexslider({ 1836 animation: "slide", 1837 animationLoop: true, 1838 itemWidth: 182, 1839 itemMargin: 3, 1840 minItems: 2, 1841 maxItems: 6, 1842 animationSpeed: 700, 1843 touch: true, 1844 slideshowSpeed: 3000 }); 1845 }); 1846 } 1847 if ( $('#special-products .flexslider').length > 0 ) { 1848 $('#special-products .flexslider').each(function(index, value) { 1849 $(this).flexslider({ 1850 animation: "slide", 1851 animationLoop: true, 1852 itemWidth: 182, 1853 itemMargin: 3, 1854 minItems: 2, 1855 maxItems: 6, 1856 animationSpeed: 700, 1857 touch: true, 1858 slideshowSpeed: 3000 }); 1859 }); 1860 } 1861 1862 if ( $('#comingsoon-products .flexslider').length > 0 ) { 1863 $('#comingsoon-products .flexslider').each(function(index, value) { 1864 $(this).flexslider({ 1865 animation: "slide", 1866 animationLoop: true, 1867 itemWidth: 182, 1868 itemMargin: 3, 1869 minItems: 2, 1870 maxItems: 6, 1871 animationSpeed: 700, 1872 touch: true, 1873 slideshowSpeed: 3000 }); 1874 }); 1875 } 1876 1877 jQuery('.flexslider').each( function() { 1878 var $slider = jQuery(this); 1879 var $slides = jQuery(this).children().children('.slides'); 1880 if ( -1 === jQuery.inArray( $slider.data('flexslider').vars.animation, [ 'slide', 'swing' ] ) ) 1881 return; 1882 $slides.bind( 'mousewheel', function( e ) { 1883 e.preventDefault(); 1884 if ( jQuery(this).hasClass('dragging') ) 1885 return; 1886 if ( e.originalEvent.deltaY > 0 ) { 1887 $slider.flexslider('next'); 1888 } 1889 if ( e.originalEvent.deltaY < 0 ) { 1890 $slider.flexslider('prev'); 1891 } 1892 return false;
1893 } ); 1894 } ); 1895 1896 if ( $('.any-products').length > 0 ) { 1897 $(window).resize(function() { 1898 1899 $('.any-products').each(function(index, value) { 1900 var margin_vertical = $(this).data("marginVertical"); 1901 if( is.mobile() ){ 1902 $(this).find(".products-box").removeClass(".products-box").addClass("product-box"); 1903 } else { 1904 if(margin_vertical){ 1905 $(this).find(".product-box").removeClass(".product-box").addClass("products-box"); 1906 } 1907 } 1908 }); 1909 1910 if(is.mobile()){ 1911 $(".any-products").find(".grid-box").attr("style",""); 1912 adjustBoxHeights(); 1913 } 1914 1915 }); 1916 } 1917 1918 if ( $('.banner-carousel').length > 0 ) { 1919 $('.banner-carousel').each(function(index, value) { 1920 var slideSpeed = is.null( $(this).attr('data-slideSpeed') ) ? 600 : $(this).attr('data-slideSpeed'); 1921 if( slideSpeed == undefined ) { slideSpeed = 600; } 1922 var el = "#" + $(this).attr("id"); 1923 var items = $(this).data("item"); 1924 1925 var lilen = $(el+" li").length; 1926 var sliderLoop = true; 1927 if(lilen==items){sliderLoop = false;} 1928 1929 var autoplay = parseInt($(this).data("autoplay")); 1930 var boolAutoplay = false; 1931 if( autoplay ) boolAutoplay = true; 1932 $(el).removeClass("hidden"); 1933 $(el).show(); 1934 $(el).imagesLoaded( function() { 1935 var el = "#" + $(this).attr("id"); 1936 $(el+" img[data-lazy-src]").each(function(index, value) { 1937 var loadimg = $(this).attr('data-lazy-src'); 1938 $(this).attr('src', loadimg); 1939 }); 1940 var slider = $(el).lightSlider({ 1941 auto: boolAutoplay, 1942 pauseOnHover: true, 1943 pager: false, 1944 item:items, 1945 loop: sliderLoop, 1946 easing: 'cubic-bezier(0.25, 0, 0.25, 1)', 1947 speed: slideSpeed, 1948 onSliderLoad: function() { 1949 $(el).removeClass("hidden"); 1950 $(el).show(); 1951 $(el).css("height", "auto"); 1952 } 1953 }); 1954 slider.refresh(); 1955 }); 1956 }); 1957 } 1958 1959 1960 if ( $('.slideshow-container-appear li').length > 0 ) { 1961 $('.slideshow-container-appear').each(function(index, value) { 1962 var el = "#" + $(this).attr("id"); 1963 var full = $(this).data("full"); 1964 if(full){ 1965 $(this).appendTo('#content-top'); 1966 } 1967 1968 if(is.mobile()){ 1969 $(el).find("li.desktop").remove(); 1970 $(el).find("li.mobile:first").show(); 1971 } else { 1972 $(el).find("li.mobile").remove(); 1973 $(el).find("li.desktop:first").show(); 1974 } 1975 1976 $(el).imagesLoaded( function(e) { 1977 1978 if(is.mobile()){ 1979 $(e).closest("li.mobile").attr("style","width:100%"); 1980 } else { 1981 $(e).closest("li.desktop").attr("style","width:100%"); 1982 } 1983 1984 var controlNav = $(e).closest(".slideshow-container-appear").data("controlnav"); 1985 var directionNav = $(e).closest(".slideshow-container-appear").data("directionnav"); 1986 var el = "#" + $(e).attr("id"); 1987 var delay = $(e).closest(".slideshow-container-appear").data("delay"); 1988 if(delay<300) delay = 300; 1989 1990 adaptiveHeight = true; 1991 if( is.mobile() ){ 1992 //controlNav = false; 1993 //directionNav = false;
1994 adaptiveHeight = false; 1995 } 1996 1997 var slideshow_img_h = 0; 1998 $(e).closest(".slideshow-container-appear li.mobile img").each(function(index, value) { 1999 var img_h = $(this).data("height"); 2000 if( (img_h > 0) && (slideshow_img_h > 0) && (img_h != slideshow_img_h) ) { 2001 slideshow_img_h = 0; 2002 } else { 2003 slideshow_img_h = img_h; 2004 } 2005 }); 2006 2007 if( is.mobile() && slideshow_img_h == 0 ){ 2008 $(e).closest(".slideshow-container-appear").flexslider({ 2009 animation: "fade", 2010 slideDirection: "horizontal", 2011 animationLoop: true, 2012 pauseOnHover: true, 2013 pauseOnAction: false, 2014 smoothHeight: false, 2015 slideshowSpeed: delay, 2016 initDelay: 0, 2017 slideshow: true, 2018 mousewheel: false, 2019 controlNav: controlNav, 2020 directionNav: directionNav, 2021 prevText: "", 2022 nextText: "", 2023 start: function(slider) { 2024 var el = "#" + $(this).attr("id"); 2025 $(el).removeClass('loading'); 2026 } 2027 }); 2028 } else { 2029 var slider = $(e).closest(".slides").lightSlider({ 2030 auto:true, 2031 loop:true, 2032 pauseOnHover:true, 2033 adaptiveHeight:true, 2034 item:1, 2035 slideMargin:0, 2036 easing: 'cubic-bezier(0.25, 0, 0.25, 1)', 2037 speed:600, 2038 pause:delay, 2039 controls:directionNav, 2040 pager:controlNav 2041 }); 2042 slider.refresh(); 2043 setTimeout(function(){ 2044 slider.play(); 2045 slider.goToNextSlide(); 2046 slider.goToPrevSlide(); 2047 slider.goToPrevSlide(); 2048 slider.refresh(); 2049 }, 700); 2050 } 2051 2052 }); 2053 2054 }); 2055 } 2056 2057 if( $('.side_float_banner .flipper').length > 0 ) { 2058 try { 2059 $('.side_float_banner .flipper').flipper(); 2060 } catch(err) { } 2061 } 2062 2063 if( $(".flexslider").find("img").length > 0 ) { 2064 $(".flexslider").find("img").trigger('appear'); 2065 } 2066 2067 2068 2069 $('[data-toggle="tooltip"]').tooltip(); 2070 2071 setTimeout(function(){ 2072 $(window).trigger('resize'); 2073 }, 300); 2074 2075 $(".flex-direction-nav").remove(); 2076 2077 adjustBoxHeights(); 2078 2079 2080 $("#menu-btn").show(); 2081 $("#menu-btn").addClass('animated flash'); 2082 2083 setTimeout(function(){ 2084 $("#mobile-navbar").removeAttr('style'); 2085 }, 1000); 2086 2087 $("#facebook-page-container").html('<iframe src="https://www.facebook.com/plugins/page.php?href=https%3A%2F%2Fwww.facebook.com%2FLoveZakkaIdea&tabs&width=500&height=214&small_header=false&adapt_container_width=true&hide_cover=false&show_facepile=true&appId=162172840650014" width="500" height="214" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true"></iframe>'); 2088 2089 2090 2091 }); 2092 2093 queue.runQueue(); 2094 2095 (function(d, s, id) { 2096 var js, fjs = d.getElementsByTagName(s)[0]; 2097 if (d.getElementById(id)) return; 2098 js = d.createElement(s); js.id = id; 2099 js.src = "https://connect.facebook.net/zh_TW/sdk.js"; 2100 fjs.parentNode.insertBefore(js, fjs); 2101 }(document, 'script', 'facebook-jssdk')); 2102 2103 if (window.location.hash == '#_=_') { 2104 window.location.hash = ''; // for older browsers, leaves a # behind 2105 history.pushState('', document.title, window.location.pathname + window.location.search); 2106 } 2107 2108 } 2109 // Store subdomains count as same site; separate tenants on the platform domain do not 2110 function qdmIsSameSiteHost(host){ 2111 var site = location.hostname.toLowerCase(); 2112 host = (host || '').toLowerCase(); 2113 if (host === site) { 2114 return true; 2115 } 2116 // Keep in sync with Response::isSameSiteHref() in system/library/response.php 2117 if (/(^|\.)(qdm\.(tw|com\.tw|cloud)|myorganic\.org\.tw)$/.test(site)) { 2118 return false; 2119 } 2120 var apex = site.replace(/^www\./, ''); 2121 return host === apex || host.slice(-(apex.length + 1)) === '.' + apex; 2122 } 2123 function sanitizeTargetBlank(){ 2124 $('a[rel~=external]').prop('target', '_blank'); 2125 $('a[target="_blank"]').each(function(){ 2126 var a = $(this); 2127 if(!qdmIsSameSiteHost(this.hostname)){ 2128 var originalRel = (this.rel === undefined) ? '' : this.rel; 2129 var newRel = originalRel.split(" "); 2130 if (originalRel.toLowerCase().indexOf('noopener') === -1){ 2131 newRel.push('noopener'); 2132 } 2133 if (originalRel.toLowerCase().indexOf('noreferrer') === -1){ 2134 newRel.push('noreferrer'); 2135 } 2136 if (originalRel.toLowerCase().indexOf('nofollow') === -1){ 2137 newRel.push('nofollow'); 2138 } 2139 a.attr('rel', newRel.join(" ").trim() ); 2140 } 2141 }); 2142 } 2143 function create_mark(name) { 2144 if (window.performance.mark === undefined) { 2145 console.log("performance.mark Not supported"); 2146 return; 2147 } 2148 window.performance.mark(name); 2149 } 2150 function initCoreJS() { 2151 $LAB.setGlobalDefaults({AlwaysPreserveOrder:true}); 2152 jQuery.ajaxPrefilter(function(s) { 2153 if ( s.crossDomain ) { 2154 s.contents.script = false;
2155 } 2156 }); 2157 $(function() { $('body').removeClass('fade-out'); }); 2158 sanitizeTargetBlank(); 2159 var def_img_idx = 1; 2160 [].forEach.call(document.querySelectorAll('img[data-src]'), function(img) { 2161 if( def_img_idx <= 12 ) { 2162 if (img.getAttribute('data-src') === null) { } else if (img.getAttribute('data-src') === '') {} else { 2163 img.setAttribute('src', img.getAttribute('data-src')); 2164 img.onload = function() { 2165 img.removeAttribute('data-src'); 2166 if (img.style.opacity !== undefined) { 2167 img.style.opacity = 1; 2168 } 2169 }; 2170 } 2171 } 2172 def_img_idx++; 2173 }); 2174 if ( $('.slideshow .flexslider').length > 0 ) { 2175 $('.slideshow .flexslider').each(function(index, value) { 2176 var el = "#" + $(this).attr("id"); 2177 var full = $(this).data("full"); 2178 if(full){ 2179 $(this).find("img").css({'width' : '100%', 'height' : 'auto' }); 2180 $(this).closest("div.slideshow").appendTo('#content-top'); 2181 } 2182 }); 2183 } 2184 $LAB.script("https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/5.0.0/imagesloaded.pkgd.min.js") 2185 .script("https://cdnjs.cloudflare.com/ajax/libs/is_js/0.9.0/is.min.js").wait(function(){ 2186 initDeferImages(); 2187 loadJS(); 2188 downloadJSAtOnload(); 2189 create_mark('mark_fully_loaded'); 2190 if( $('.wow').eq(0).length ) { 2191 getScript("https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js",function(){ 2192 new WOW().init(); 2193 }); 2194 } 2195 if( $('img[usemap]').eq(0).length ) { 2196 getScript("https://cdnjs.cloudflare.com/ajax/libs/jQuery-rwdImageMaps/1.6/jquery.rwdImageMaps.min.js",function(){ 2197 try { $('img[usemap]').rwdImageMaps(); } catch (e) { } 2198 }); 2199 } 2200 2201 }); 2202 //230117 fix flipper hover 2203 if($(".grid-box, .product-row").find(".flipper").length){ 2204 $(".grid-box, .product-row").find(".flipper").hover(function(){ 2205 oldSrc = $(this).attr("src"); 2206 $(this).attr("src",$(this).attr("data-flipper")); 2207 },function(){ 2208 $(this).attr("src",oldSrc); 2209 }); 2210 } 2211 } 2212 2213 initCoreCSS(); 2214 setTimeout(function(){ 2215 initCoreJS(); 2216 $.getJSON( "index.php?route=account/account/get_user_track&token=" + (Math.floor(Math.random() * 999) + 100), function( data ) { 2217 if( data.user_id ) { ga_userId = data.user_id; } 2218 if( data.uuid ) { 2219 try { 2220 if ('localStorage' in window && window['localStorage'] !== null){ 2221 localStorage.removeItem("qdm_user_uuid"); 2222 localStorage.setItem("qdm_user_uuid", data.uuid); 2223 qdm_user_uuid = data.uuid; 2224 } 2225 } catch (e) {} 2226 } 2227 if( data.utm_source == "affiliates" ) { ga_utm_source = data.utm_source; } 2228 reportFbqTrack(); 2229 2230 }); 2231 var vidDefer = document.getElementsByTagName('iframe'); 2232 for (var i=0; i<vidDefer.length; i++) { 2233 if(vidDefer[i].getAttribute('src')) { 2234 vidDefer[i].setAttribute('data-src',vidDefer[i].getAttribute('src')); 2235 } 2236 } 2237 document.getElementsByTagName("body")[0].style.display = "block"; 2238 }, 60); 2239 2240 </script>
2240 </body> </html>
2240<script> 2241 2242function init_inline(){ 2243 getScript("https://static.addtoany.com/menu/page.js",function(){ }); 2244 } 2245 2246</script>
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.