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