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.iporkcut.com.tw/" /> <meta charset="utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" /> <meta http-equiv='x-dns-prefetch-control' content='on'> <meta name="author" content="æä¸æ¯æâ
æçæ¯èçèä¹¾"> <meta name="copyright" content="幸ç¦ç¦®ç"> <meta name="google" content="notranslate" /> <meta name="mobile-web-app-capable" content="yes"> <meta name="theme-color" content="#f5f5f5"> <link rel="preconnect" href="//cdn.qdm.cloud" /> <link rel="preconnect" href="//image-cdn-flare.qdm.cloud" /> <link rel="preconnect" href="//image-cdn.qdm.cloud" /> <link rel="preconnect" href="//www.facebook.com" /> <link rel="preconnect" href="//connect.facebook.net" /> <link rel="preconnect" href="//ajax.googleapis.com" /> <link rel="dns-prefetch" href="//ajax.googleapis.com" /> <link rel="dns-prefetch" href="//image-cdn-flare.qdm.cloud" /> <link rel="dns-prefetch" href="//image-cdn.qdm.cloud" /> <link rel="dns-prefetch" href="//cdn.qdm.cloud" /> <link rel="dns-prefetch" href="//fonts.googleapis.com" /> <link rel="dns-prefetch" href="//www.google-analytics.com" /> <link rel="dns-prefetch" href="//www.googletagmanager.com" /> <link rel='dns-prefetch' href="//www.google.com" /> <link rel='dns-prefetch' href="//www.google.com.tw" /> <link rel='dns-prefetch' href="//maxcdn.bootstrapcdn.com" /> <link rel='dns-prefetch' href="//cdnjs.cloudflare.com" /> <link rel='dns-prefetch' href="//www.facebook.com" /> <link rel='dns-prefetch' href="//connect.facebook.net" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title itemprop='name'>幸ç¦ç¦®ç | æä¸æ¯æâ
æçæ¯èçèä¹¾</title> <meta name="description" content="â
å´é¸CASåªè³ªè±¬è â
æ°é®®æä½ï¼ç¨ç«å
è£ â
ç±³å
¶æå
é¢ççï¼è»å«©å¤æ±" /> <meta property="og:description" content="â
å´é¸CASåªè³ªè±¬è â
æ°é®®æä½ï¼ç¨ç«å
è£ â
ç±³å
¶æå
é¢ççï¼è»å«©å¤æ±" /> <meta name="keywords" content="èæ±è±¬èæ¢" /> <link href="https://www.iporkcut.com.tw/product/product&product_id=66" rel="canonical" itemprop="url"> <!-- FACESPACE --> <meta property="fb:app_id" content="162172840650014" /> <meta property="og:title" content="幸ç¦ç¦®ç | æä¸æ¯æâ
æçæ¯èçèä¹¾"/> <meta property="og:type" content="website"/> <meta property="og:url" content="https://www.iporkcut.com.tw/product/product&product_id=66"/> <meta property="og:locale" content="zh_TW" /> <meta property="og:image" content="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg"/> <meta property="og:image:url" content="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg"/> <meta property="og:site_name" content="æä¸æ¯æâ
æçæ¯èçèä¹¾"> <meta property="og:updated_time" content="1791405790"> <!-- Twitter Card --> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="幸ç¦ç¦®ç | æä¸æ¯æâ
æçæ¯èçèä¹¾"> <meta name="twitter:description" content="â
å´é¸CASåªè³ªè±¬è â
æ°é®®æä½ï¼ç¨ç«å
è£ â
ç±³å
¶æå
é¢ççï¼è»å«©å¤æ±"> <meta name="twitter:image" content="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg"> <!-- llms.txt --> <link rel="llms-txt" href="/llms.txt" /> <!-- G++ --> <meta itemprop="name" content="幸ç¦ç¦®ç"> <meta itemprop="description" content="â
å´é¸CASåªè³ªè±¬è â
æ°é®®æä½ï¼ç¨ç«å
è£ â
ç±³å
¶æå
é¢ççï¼è»å«©å¤æ±"> <meta itemprop="image" content="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg"> <link title='幸ç¦ç¦®ç - è¨é±ååå¿«è¨RSS' href="https://www.iporkcut.com.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" : "æä¸æ¯æâ æçæ¯èçèä¹¾", 6 "url": "https://www.iporkcut.com.tw/", 7 "potentialAction": { 8 "@type": "SearchAction", 9 "target": { 10 "@type": "EntryPoint", 11 "urlTemplate": "https://www.iporkcut.com.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": "æä¸æ¯æâ æçæ¯èçèä¹¾", 21 "url": "https:\/\/www.iporkcut.com.tw\/", 22 "logo": "https:\/\/image-cdn-flare.qdm.cloud\/q6a5dd2e0d87d6\/image\/data\/2018\/09\/26\/1e97bc46691f1b39b1763c3dd3aca3c3.jpg", 23 "email": "[email protected]", 24 "sameAs": [ 25 "https:\/\/www.facebook.com\/iporkcut" 26 ], 27 "image": "https:\/\/image-cdn-flare.qdm.cloud\/q6a5dd2e0d87d6\/image\/data\/2018\/09\/26\/1e97bc46691f1b39b1763c3dd3aca3c3.jpg" 28} </script>
28
28<script type="text/javascript"> 29(function(c,l,a,r,i,t,y){ 30c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 31t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 32y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 33})(window, document, "clarity", "script", "99n8zhelys"); 34</script>
34 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 68 bytes, lines 34-35
34 <script async 35 src="https://www.googletagmanager.com/gtag/js?id=
35G-8CRMWS8GBK
vendor: 12 bytes, line 35
35"></script>
35<script> 36
vendor: 141 bytes, lines 36-40
36window.dataLayer = window.dataLayer || []; 37 function gtag(){dataLayer.push(arguments);} 38 gtag('js', new Date()); 39 40 gtag('config', "
40G-8CRMWS8GBK
vendor: 40 bytes, lines 40-42
40", { send_page_view: false }); 41 42
42</script>
42
42<script> 43 44 var enhanced_conversion_data = {}; 45 var ga_userId = null; 46 var ga_userId_global = null; 47 var qdm_user_uuid = "q6a5dd2e0d87d6-1inh1a4k1f3n6cupe2u4nrtpdt"; 48 var helperga4 = null; 49 var xmlhttp_uinfo = new XMLHttpRequest(); 50 xmlhttp_uinfo.open('GET', "https://www.iporkcut.com.tw/index.php?route=common/header/getLoggedInUserInfo&token=" + new Date().getTime() + "1" + (Math.floor(Math.random() * 999) + 100) , true); 51 xmlhttp_uinfo.onreadystatechange = function() { 52 if (xmlhttp_uinfo.readyState == 4) { 53 if(xmlhttp_uinfo.status == 200) { 54 try { 55 var obj = JSON.parse(xmlhttp_uinfo.responseText); 56 ga_userId = obj.user_id; 57 if( obj.email ) { 58 enhanced_conversion_data.email = obj.email; 59 } 60 } catch (e) { } 61 } 62 } 63 }; 64 xmlhttp_uinfo.send(null); 65 66 try { 67 if ('localStorage' in window && window['localStorage'] !== null){ 68 if( localStorage.getItem('qdm_user_uuid') && qdm_user_uuid == null ) { 69 qdm_user_uuid = localStorage.getItem('qdm_user_uuid'); 70 } 71 } 72 } catch (e) {} 73 window.addEventListener("beforeunload", () => localStorage.removeItem('qdm_user_uuid')); 74 75 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 "q6a5dd2e0d87d6"+t;} 76 var dateTime = Date.now(); 77 var timestamp = Math.floor(dateTime / 1000); 78 var global_quuid = QUUID(); 79 //var global_quuid = "q6a5dd2e0d87d6" + Math.random().toString(13).substr(2, 9) + "" + timestamp + "" + new Date().getTime(); 80 var global_product_id = 0; 81 var ecommCheckoutTotal = 0; 82 var gecommProduct = new Array("66"); 83 var gecommProductName = '幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)'; 84 var gecommProductSKU = ''; 85 var gecommProductDesc = gecommProductName; 86 var gecommProductDesc = 'â å´é¸CASåªè³ªè±¬è â æ°é®®æä½ï¼ç¨ç«å è£ â ç±³å ¶æå é¢ççï¼è»å«©å¤æ±'; 87 var gecommProductBrand = '幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)'; 88 var gecommProductBrand_cyntelli = 'æä¸æ¯æâ èä¹¾'; 89 var gecommProductCategoryPath = 'å¹´ç¯ç¦®ç'; 90 var gecommProductCategoryWithComma = 'è乾系å,å¹´ç¯ç¦®ç,海鮮系å'; 91 var gecommProductPrice = 750; 92 var gecommCompareAtPrice = 750; 93 var gecommProductImageUrl = 'https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg'; 94 var gecommProductUrl = "https://www.iporkcut.com.tw/product/product&product_id=66"; 95 var gecommViewCategoryName = ''; 96 var gecommViewFullCategoryName = ''; 97 var gecommProductToCart = {}; 98 var ecommOrderToCheckout = {}; 99 dataLayer.push({ 100 'pageCategory': 'signup', 101 'visitorType': 'high-value' 102 }); 103 104 var customer_id = '0'; 105 if(customer_id>0){ 106 if( ga_userId !== null ) { 107 ga_userId = customer_id; 108 } 109 } 110 111 var ga_utm_source = null; 112 var toggleVisible = function(id){ 113 var el = document.getElementById(id); 114 if( el !== null ) { el.style.visibility = "visible"; } 115 }; 116 117 </script>
117
117<script id="google-ga-event-track" type="text/javascript"> 118 119 var track_google_ga_trigger = 0; 120 121 setTimeout(function(){ 122 123 if( ga_userId !== null ) { 124 ga_userId_global = "q6a5dd2e0d87d6_" + ga_userId; 125 126 dataLayer.push({ 127 'event': 'data', 128 'UID': ga_userId 129 }); 130 window.adGeek_d = { 131 'memberId': ga_userId 132 }; 133 134 135 gtag('config', "G-8CRMWS8GBK", {'user_id': ga_userId_global}); 136 137 138 } else { 139 } 140 141 if( track_google_ga_trigger == 1 ) { return false; }; 142 143 if ( parseInt(global_product_id) > 0 ) { 144 if (typeof gaTrackProductView == 'function') { 145 gaTrackProductView(); 146 } 147 } 148 149 150 151 152 153 154 155 }, 2000); 156 157 </script>
157
157<script> 158 159 var QDMPPID = "0b1f39e6a69c830ba1aa07cce3eefdae"; 160 function setCookie(name, value, days) { 161 var expires = ""; 162 if (days) { 163 // Mutate ONE Date object then format it. The previous one-liner set the 164 // expiry on a throwaway Date and formatted a fresh (now) Date, so every 165 // "persistent" cookie got expires=now and was dropped immediately. 166 var expireDate = new Date(); 167 expireDate.setTime(expireDate.getTime() + (864e5 * days)); 168 expires = "; expires=" + expireDate.toUTCString(); 169 } 170 // SameSite=Lax lets cookies survive redirects back from external services (e.g. ECPay logistics). 171 document.cookie = name + "=" + value + expires + "; path=/; Secure; SameSite=Lax"; 172 } 173 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)))} 174 if( !getCookie("QDMPPID") ) { setCookie("QDMPPID","57969281386f40291112eb9aae0cdf1b", 365); } 175 QDMPPID = getCookie("QDMPPID"); 176 <!-- Facebook Pixel Code --> 177 !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 178 n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 179 n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 180 t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 181 document,'script','https://connect.facebook.net/en_US/fbevents.js'); 182 <!-- End Facebook Pixel Code --> 183 184 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); 185 186 function removeClass( classname, element ) { 187 var cn = element.className; 188 var rxp = new RegExp( "s?b"+classname+"b", "g" ); 189 cn = cn.replace( rxp, '' ); 190 element.className = cn; 191 } 192 193 var disabledScroll = 1; 194 var doJsAfterLoad = 0; 195 196 197 var stylesheets = [ 198 "https://cdn.qdm.cloud/static/fontawesome/v3.2.1/css/font-awesome.min.css", 199 "https://cdn.qdm.cloud/static/fontawesome/v4.7.0/css/font-awesome.min.css", 200 "https://cdn.qdm.cloud/static/fontawesome/v5.11.2/css/all.min.css", 201 "https://cdn.qdm.cloud/static/fontawesome/v5.11.2/css/v4-shims.min.css", 202 "https://cdn.qdm.cloud/static/fontawesome/v6.5.1/css/all.min.css", 203 "https://fonts.googleapis.com/css?family=Roboto:400,400i,500,700&display=swap", 204 "https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css", 205 "https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css" 206 ]; 207 function refreshMiniCartScrollBar(){ 208 var nice = $(".nicescroll-box").niceScroll(".wrap",{emulatetouch:true,bouncescroll:true}); 209 } 210 function initCoreCSS(){ 211 if( doJsAfterLoad ) return; 212 var loading_css_product = loadCSS("https://cdn.qdm.cloud/assets/css/core_product.24022002.css"); 213 onloadCSS(loading_css_product, function(){ initCSS(); }); 214 toggleVisible('header'); 215 toggleVisible('mainnav'); 216 doJsAfterLoad = 1; 217 } 218 function initCSS(){ 219 for (var i=0; i < stylesheets.length; i++) { loadCSS(stylesheets[i]); } 220 loadCSS("https://image-cdn.qdm.cloud/site/q6a5dd2e0d87d6/global.css?v=1780624407"); 221 } 222 function loadJS(){ 223 } 224 225 const ImageErrorHandler = { 226 // é ç½®é¸é 227 config: { 228 maxRetries: 5, 229 baseDelay: 200, 230 maxDelay: 3000, 231 defaultImage: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", 232 fallbackImage: "//cdn.qdm.cloud/assets/no_image.jpg" // å¯é¸çæ¿ä»£åç 233 }, 234 235 // æ£å¨èççåç Mapï¼é²æ¢éè¤èçï¼ 236 processingImages: new WeakMap(), //WeakMapæ¸å°è¨æ¶é«çæ´©æ¼ 237 handle(image) { 238 try { 239 if (!image || !image.src || this.processingImages.has(image)) { 240 return; 241 } 242 243 // æ¨è¨çºèçä¸ 244 this.processingImages.set(image, true); 245 246 const retryCount = parseInt(image.getAttribute('data-reload') || '0') + 1; 247 248 if (retryCount > this.config.maxRetries) { 249 this.handleFinalError(image); 250 return; 251 } 252 253 image.setAttribute('data-reload', retryCount); 254 255 // è¨ç®å»¶é²æéï¼ææ¸éé¿ï¼
256 const delay = Math.min( 257 this.config.baseDelay * Math.pow(2, retryCount - 1), 258 this.config.maxDelay 259 ); 260 261 setTimeout(() => { 262 this.retryLoad(image, retryCount); 263 }, delay); 264 265 } catch (err) { 266 console.error('ImageErrorHandler error:', err); 267 this.handleFinalError(image); 268 } 269 }, 270 271 retryLoad(image, retryCount) { 272 const imageSrc = this.updateTimestamp(image.src); 273 // ä½¿ç¨æ°åçç©ä»¶æ¸¬è©¦ 274 const testImage = new Image(); 275 testImage.onload = () => { 276 // æåè¼å ¥ 277 image.src = imageSrc; 278 this.processingImages.delete(image); 279 280 // éæ°ç¶å®é¯èª¤èç 281 image.onerror = () => this.handle(image); 282 }; 283 284 testImage.onerror = () => { 285 // è¼å ¥å¤±æ 286 this.processingImages.delete(image); 287 288 // å¦ææ¯æå¾ä¸æ¬¡é試åï¼å試使ç¨åç¨åç 289 if (retryCount === this.config.maxRetries - 1 && this.config.fallbackImage) { 290 image.src = this.config.fallbackImage; 291 image.onerror = () => this.handle(image); 292 } else { 293 this.handle(image); 294 } 295 }; 296 297 testImage.src = imageSrc; 298 }, 299 300 updateTimestamp(src) { 301 const timestamp = `timestamp=${Date.now()}`; 302 303 if (src.includes('timestamp=')) { 304 return src.replace(/timestamp=\d+/, timestamp); 305 } 306 307 const separator = src.includes('?') ? '&' : '?'; 308 return `${src}${separator}${timestamp}`; 309 }, 310 311 handleFinalError(image) { 312 // æ¸ ç 313 image.onerror = null; 314 image.onload = null; 315 this.processingImages.delete(image); 316 317 // ä¿ååå§ URL 318 if (!image.src.includes("base64") && !image.hasAttribute('data-image-raw')) { 319 image.setAttribute('data-image-raw', image.src); 320 } 321 322 // è¨ç½®é è¨åç 323 image.src = this.config.defaultImage; 324 325 // 觸ç¼äºä»¶ 326 image.dispatchEvent(new CustomEvent('imageFinalError', { 327 detail: { 328 originalSrc: image.getAttribute('data-image-raw'), 329 retries: image.getAttribute('data-reload') 330 } 331 })); 332 } 333 }; 334 335 // åçé¯èª¤ 336 function imgError(image) { 337 ImageErrorHandler.handle(image); 338 } 339 340 341 </script>
341
341<script> 342 function vbtrax_track(){ 343 } 344 345 function criteo_track(){ 346 } 347 348 349 </script>
349
349<script type="application/javascript"> </script>
349 </script>
349
349<script> 350 var N=document.createElement("link"); 351 N.setAttribute("href", "https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/favicon.png"); 352 N.setAttribute("rel", "shortcut icon"); 353 N.setAttribute("type", "image/png"); 354 document.head.appendChild(N); 355 </script>
355
355<script>document.createElement("picture");</script>
355
355<script async src='https://cdnjs.cloudflare.com/ajax/libs/picturefill/3.0.3/picturefill.min.js'></script>
355 <link rel="icon" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/favicon.png" type="image/x-icon" > <link rel="shortcut icon" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/favicon.png" type="image/x-icon" > <link type="text/css" rel="stylesheet" href="https://cdn.qdm.cloud/min/css/core.260320v01.css"> <style> 356 *, 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; } 357 @media (min-width: 1200px) { body { padding-top: 40px; } .container, .navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { width: 1170px; } } 358 .hidden{display:none;visibility:hidden} 359 .pull-right { float: right !important; } 360 .container > #mainnav.skin4 { max-width:860px;width:100%; } 361 .container > #mainnav.skin4 .nav.menu-nav { display:inherit; } 362 #mainnav ul { list-style: none; display: flex; flex-wrap: wrap; } 363 #mainnav ul li { position: relative; } 364 #mainnav ul li ul.dropdown-menu { position: absolute; display: none; flex-direction: column; } 365 #mainnav ul li ul.dropdown-menu > li.column-menu { display: table-cell; border-right: 1px solid #eee; vertical-align: top; } 366 #mainnav ul li ul.dropdown-menu > li.column-menu > ul { display: block; } 367 #mainnav ul li:hover > ul { display: flex; } 368 #mainnav ul ul ul {top: 0; left: 100%; border-left:solid 1px #fff; width:auto;} 369 #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); } 370 #mainnav ul.nav li.dropdown ul.dropdown-menu li a { font-size: 17px; line-height: 26px; } 371 #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; } 372 .navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;} 373 .navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;} 374 #header ul{list-style:none;margin:0;padding:0} #header li{list-style:none} 375 .navbar .nav{position:relative;} 376 .navbar .nav.pull-right{float:right;margin-right:0;} 377 .navbar .nav>li{float:left;} 378 .navbar .nav>li>a{float:none;padding:10px 15px 10px;text-decoration:none;} 379 .navbar .nav .dropdown-toggle .caret{margin-top:8px;} 380 .navbar .button-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;} 381 .button-navbar .icon-bar+.icon-bar{margin-top:3px;} 382 .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;} 383 .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;} 384 .dropdown-menu { position: absolute; display: none; float: left; } 385 .dropup, .dropdown { position: relative; } 386 .pushy { z-index: 99999999; } 387 .pushy-menu-storename span{ 388 width: 40%; 389 position: absolute; 390 top: 24px; 391 right: 5px; 392 text-align: right; 393 padding-right: 10px; 394 } 395 .pushy-menu-storename a{ 396 width: 90%; 397 } 398 .pushy-menu-storename a:hover, a:visited, a:link, a:active { 399 text-decoration: none; 400 } 401 </style> <link type="text/css" rel="stylesheet" href="https://cdn.qdm.cloud/min/css/theme/skin-2.css?v=231130001"> <link type="text/css" rel="stylesheet" href="https://image-cdn.qdm.cloud/site/q6a5dd2e0d87d6/custom_theme.css?v=20260604160837"> <style> 402 html {-webkit-transition: background-color 0s;transition: background-color 0s;} html.loading { position: relative; overflow:hidden; width:100%; height:100%; min-height:768px;
402 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; } 403 .already_sold span{color:#e4007f;font-weight:bold;} 404 #myBody .fancybox-buttons { top: 60px; } 405 .ui-autocomplete.ui-front.ui-menu { 406 z-index: 999999999; border: none; border: 1px solid #EEE; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 407 } 408 .ui-autocomplete.ui-front.ui-menu > .ui-menu-item { 409 font-size: 17px; line-height: 26px; list-style-image: none; background-color: #FFF; cursor: pointer; border: none; 410 } 411 .ui-autocomplete.ui-front.ui-menu > .ui-menu-item a.ui-state-focus { 412 line-height: 26px; 413 border-color: #616161; 414 background: #616161 !important; 415 font-weight: bold !important; 416 color: #ffffff !important; 417 } 418 @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;}} 419 .onsale{ width:65px; height:24px; min-width:65px; min-height:24px; padding:2px; border-radius:5%; line-height:20px; } 420 #navbar-top-socialbar li.social-icon{ line-height:0px; padding-top:6px; } 421 #navbar-top-socialbar li.social-icon>a>i{ line-height:24px; } 422 .display_price { display:none; } 423 424 #payment-logo-list{ 425 width: 100%; 426 max-width: 1200px; 427 margin: 0 auto; 428 /*padding-bottom: 20px;*/ 429 padding-top: 10px; 430 } 431 432 #payment-logo-list .pl-row { 433 display: flex; 434 flex-wrap: wrap; 435 justify-content: center; 436 gap: 20px; 437 } 438 439 #payment-logo-list .pl-col { 440 flex: 1; 441 max-width: 120px; 442 padding: 2px; 443 text-align: center; 444 } 445 #payment-logo-list .pl-col img { 446 max-height: 40px; 447 line-height: 40px; 448 object-fit: contain 449 } 450 @media only screen and (max-width:768px){ 451 #payment-logo-list .pl-col { 452 min-width: 10%; 453 } 454 } 455 </style> <style> 456 .preload-hidden { opacity: 0; transition: opacity .3s ease; } 457 .awoo-ui { display:block; margin-top:20px; margin-bottom:20px; } 458 </style>
458<script> 459 window.addEventListener('load', function(){ 460 try { 461 setTimeout(function(){ 462 var preloadElements = document.querySelectorAll('.preload-hidden'); 463 preloadElements.forEach(function(element) { 464 element.style.opacity = '1'; 465 }); 466 }, 300); 467 } catch(e) {} 468 }); 469 </script>
469 </head> <body id="myBody" data-customer-group="1" data-instant-allow-query-string itemscope itemtype="https://schema.org/WebSite" class="responsive skin-2 product-product"> <div id="fb-root"></div>
469<script> 470 window.fbAsyncInit = function() { 471 FB.init({ 472 appId : '162172840650014', 473 autoLogAppEvents : true, 474 cookie : true, 475 xfbml : true, 476 status : true, 477 version : 'v19.0' 478 }); 479 }; 480</script>
480 <meta itemprop="url" content="https://www.iporkcut.com.tw/" /> <!-- Mobile Header --> <!--googleoff: index--> <div id="mobile-navbar" class="navbar navbar-static-top FixedTop visible-xs visible-sm" style="display:none;"> <div class="navbar-inner"> <ul class="nav"> <li id="menu-btn" class="menu-btn"><span>☰</span></li> <li class="site-title"> <a href="https://www.iporkcut.com.tw/">æä¸æ¯æâ æçæ¯èçèä¹¾</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.iporkcut.com.tw/cart"><i class="fa fa-shopping-cart" aria-hidden="true"></i><span class="badge hidden">0</span></a></li> </ul> </div> </div> <!--googleon: index--> <!-- Pushy Menu --> <nav id="mobile-menu-pushy" class="pushy pushy-left visible-xs visible-sm" style="display:none;"> <div class="pushy-content"> <ul> <li class="pushy-menu-storename"> <a href="https://www.iporkcut.com.tw/">æä¸æ¯æâ æçæ¯èçèä¹¾</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.iporkcut.com.tw/account/edit">æçè³æ</a></li> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/account/reward">æçç´ å©</a></li> <div class="pushy-menu-divide"></div> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/wishlist">é¡ææ¸ å®</a></li> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/compare">å忝è¼</a></li> <div class="pushy-menu-divide"></div> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/newsletter">æçè¨é±</a></li> </ul> </li> <li class="header-logged-menu pushy-submenu hidden"> <button><i class="fa fa-truck" aria-hidden="true"></i> æçè¨å®</button> <ul> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/account/order/payment">填坫坿¬¾å®</a></li> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/order">æçè¨å®</a></li> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/account/return">é/æè²¨ç´é</a></li> </ul> </li> <li class="pushy-link header-none-logged-menu hidden"><a href="/login"><i class="fa fa-user-circle-o"></i> æå¡ä¸å¿ (ç»å ¥)</a></li> <li class="pushy-link header-none-logged-menu hidden"><a href="/guestorder"><i class="fa fa-search-plus" aria-hidden="true"></i> æè¦æ¥è¨å®</a></li> <li class="pushy-submenu"> <button><i class="fa fa-commenting-o" aria-hidden="true"></i> æ¾åºé·</button> <ul> <li class="pushy-link"><a href="https://www.iporkcut.com.tw/contact">ç·ä¸çè¨</a></li> <li class="pushy-link"><a href="mailto:[email protected]" target="_blank" rel="noopener noreferrer nofollow">é»åéµä»¶</a></li> <li class="pushy-link"><a href="https://www.messenger.com/t/iporkcut" target="_blank" rel="noopener noreferrer nofollow">Facebookè¨æ¯</a></li> </ul> </li> <li class="pushy-link header-logged-menu hidden"><a href="https://www.iporkcut.com.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.iporkcut.com.tw/">ååºé¦é </a></li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/å¹´ç¯ç¦®ç" >å¹´ç¯ç¦®ç</a> </li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/海鮮系å" >海鮮系å</a> </li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/è乾系å" >è乾系å</a> </li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/èç´ç³»å" >èç´ç³»å</a> </li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/èçç³»å" >èçç³»å</a> </li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/ç¾å³é¦é¬" >ç¾å³é¦é¬</a> </li> <li class="pushy-link" > <a href="https://www.iporkcut.com.tw/æ¶®å´é¶å´" >æ¶®å´é¶å´</a> </li> </div> </ul> </div> </nav> <!-- Site Overlay --> <div class="site-overlay"></div> <header id="header" class="visible-lg visible-md" itemscope itemtype="https://schema.org/Organization"> <div class="container"> <!-- search bar --> <div class="container" id="search" class="search"> <div class="searchbox input-append" itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction"> <meta itemprop="target" content="https://www.iporkcut.com.tw/search?q={filter_name}"/> <input itemprop="query-input" type="search" name="filter_name" value="" placeholder="æå°" class="input-xxlarge" /> <button class="button button-search" type="button"><i class="icon-search"></i></button> </div> </div> <ul class="nav nav-pills pull-right"> <li style="margin-top:-1px; margin-right: 10px;"></li> <li></li> <li><section class="float-mini-cart" id="cart"> <style> 481.mini-cart-info td, .mini-cart-total td { line-height:20px; } 482</style> <div class="heading"> <i class="fa fa-shopping-cart"></i> 483 ( <a href="https://www.iporkcut.com.tw/cart" id="cart-total"> 484 0 ä»¶åå $0 </a> 485 ) 486 </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.iporkcut.com.tw/account" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user-o"></i> <span id="header-logged-user"></span> <b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="https://www.iporkcut.com.tw/account">æå¡ä¸å¿</a></li> <li><a href="https://www.iporkcut.com.tw/order">æçè¨å®</a></li> <li><a href="https://www.iporkcut.com.tw/account/order/payment">填坫坿¬¾å®</a></li> <li><a href="https://www.iporkcut.com.tw/wishlist">é¡ææ¸ å®</a></li> <li><a href="https://www.iporkcut.com.tw/compare">å忝è¼</a></li> <li class="divider"></li> <li><a href="https://www.iporkcut.com.tw/account/logout">ç»åº</a></li> </ul> </li> <li id="header-none-logged-menu"><a href="https://www.iporkcut.com.tw/login" title="æå¡ç»å ¥" id="bt
486nLogin"><i class="fa fa-user-o"></i> æå¡ç»å ¥</a></li> <li class="dropdown"> <a href="##" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-commenting-o"></i></a> <ul class="dropdown-menu"> <li><a href="https://www.iporkcut.com.tw/contact"><i class="fa fa-comments-o"> ç·ä¸çè¨</i></a></li> <li><a href="mailto:[email protected]" target="_blank" rel="noopener noreferrer nofollow"><i class="fa fa-envelope-o"> é»åéµä»¶</i></a></li> <li><a href="https://www.messenger.com/t/iporkcut" target="_blank" rel="noopener noreferrer nofollow"><i class="fa fa-facebook-square"> Facebookè¨æ¯</i></a></li> </ul> </li> <li><a href="##" id="switchSearchPanel" class="switchSearchPanel" title="æåå"><i class="fa fa-search"></i></a></li> </ul> <a itemprop="url" class="logo" href="https://www.iporkcut.com.tw/"><img onerror='imgError(this);' itemprop="logo" src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2018/09/26/1e97bc46691f1b39b1763c3dd3aca3c3.jpg" title="æä¸æ¯æâ æçæ¯èçèä¹¾" alt="æä¸æ¯æâ æçæ¯èçèä¹¾" /></a> </div> <br/><br/> </header> <div id="content-wrapper"> <div class="container"> <nav id="mainnav" class="navbar visible-lg visible-md" role="navigation" style="visibility:hidden"> <div class="navbar-inner"> <div class="container"> <button type="button" class="button button-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span> 487 488 é¸å®</span> <i class="icon-navbtn"></i> </button> <div class="nav-collapse"> <ul class="nav"> <li data-categoryid="15" href="https://www.iporkcut.com.tw/å¹´ç¯ç¦®ç" > <a href="https://www.iporkcut.com.tw/å¹´ç¯ç¦®ç" data-hover="">å¹´ç¯ç¦®ç</a> </li> <li data-categoryid="22" href="https://www.iporkcut.com.tw/海鮮系å" > <a href="https://www.iporkcut.com.tw/海鮮系å" data-hover="">海鮮系å</a> </li> <li data-categoryid="9" href="https://www.iporkcut.com.tw/è乾系å" > <a href="https://www.iporkcut.com.tw/è乾系å" data-hover="è乾系å">è乾系å</a> </li> <li data-categoryid="10" href="https://www.iporkcut.com.tw/èç´ç³»å" > <a href="https://www.iporkcut.com.tw/èç´ç³»å" data-hover="èç´ç³»å">èç´ç³»å</a> </li> <li data-categoryid="8" href="https://www.iporkcut.com.tw/èçç³»å" > <a href="https://www.iporkcut.com.tw/èçç³»å" data-hover="èçç³»å">èçç³»å</a> </li> <li data-categoryid="11" href="https://www.iporkcut.com.tw/ç¾å³é¦é¬" > <a href="https://www.iporkcut.com.tw/ç¾å³é¦é¬" data-hover="ç¾å³é¦é¬">ç¾å³é¦é¬</a> </li> <li data-categoryid="12" href="https://www.iporkcut.com.tw/æ¶®å´é¶å´" > <a href="https://www.iporkcut.com.tw/æ¶®å´é¶å´" data-hover="æ¶®å´é¶å´">æ¶®å´é¶å´</a> </li> </ul> </div> </div> </div> </nav><!-- #navbar --> </div><!-- .container --> <div class="fluid-container"> <div id="content-top"></div> </div><!-- .fluid-container --> <div id="body-outer-container" class="container"> <div class="container-inner"> <style> 489 .swal2-container.swal2-center { 490 z-index: 999999999; 491 } 492 493 #options .nice-number { 494 display: inline-block; 495 } 496 497 #options label[data-number-input-option] .nice-number>button { 498 -webkit-appearance: none; 499 border: 1px solid #BBB; 500 background: #FBFBFB; 501 height: 28px; 502 } 503 504 #options label[data-number-input-option] .multicheck-options { 505 border-radius: 0px; 506 height: 28px; 507 } 508 509 #options label.option--value-no-stock .nice-number { 510 display: none; 511 } 512 513 .product-info .rightcol .product-feature-content { 514 -moz-hyphens: auto; 515 -ms-hyphens: auto; 516 -webkit-hyphens: auto; 517 hyphens: auto; 518 word-wrap: break-word; 519 } 520 521 h1.product-heading-title { 522 -moz-hyphens: auto; 523 -ms-hyphens: auto; 524 -webkit-hyphens: auto; 525 hyphens: auto; 526 word-wrap: break-word; 527 } 528 529 .cart .button.button-ticket { 530 background: #35bcab; 531 border-color: #35bcab; 532 } 533 534 .cart .button.button-ticket:hover { 535 background: #35bcab; 536 border-color: #288e84; 537 } 538 539 /*#maincontent.product-info.span12 #main-image.image { text-align: center; } */ 540 #maincontent.product-info.span12 #main-image img { 541 width: auto; 542 max-width: 480px; 543 } 544 545 #maincontent.product-info #main-defer-image { 546 width: 100%; 547 max-width: 480px; 548 } 549 550 #image-additional { 551 display: flex; 552 flex-wrap: wrap; 553 align-items: flex-start; 554 gap: 1px; 555 float: none !important; 556 } 557 558 #image-additional-container { 559 float: none !important; 560 clear: both; 561 display: block; 562 margin-left: auto; 563 margin-right: 0; 564 } 565 566 #image-additional li { 567 display: block; 568 margin: 0; 569 list-style: none; 570 } 571 572 #image-additional li a img { 573 display: block; 574 } 575 576 .add-additional-purchase-price { 577 display: inline-block; 578 margin-left: 12px; 579 margin-right: 12px; 580 line-height: 40px; 581 } 582 583 .add-additional-purchase-price .product-original-price { 584 display: inline-block; 585 margin: 0px; 586 margin-left: 6px; 587 text-decoration: line-through; 588 color: #C0C0C0; 589 font-size: 11px; 590 } 591 592 .add-additional-purchase-price .product-additional-price { 593 display: inline-block; 594 margin: 0px; 595 font-weight: bold; 596 color: #d9505b; 597 font-size: 14px; 598 } 599 600 .well.add-additional-purchase-price-container label { 601 padding: 4px; 602 padding-bottom: 8px; 603 padding-left: 12px; 604 border: 2px solid #DFDFDF; 605 background: #FFF; 606 cursor: pointer; 607 position: relative; 608 } 609 610 .well.add-additional-purchase-price-container label .text_no_pick { 611 padding: 0px; 612 padding-left: 6px; 613 padding-right: 6px; 614 border-radius: 4px; 615 background: #65b9aa; 616 color: #FFF; 617 font-size: 9px; 618 line-height: 16px; 619 position: absolute; 620 right: -3px; 621 top: -3px; 622 font-weight: bold; 623 } 624 625 .well.add-additional-purchase-price-container label:hover { 626 border: 2px solid #919191; 627 } 628 629 .well.add-additional-purchase-price-container label input[type='radio'] { 630 padding: 0px; 631 margin: 0px; 632 } 633 634 @media screen and (max-width: 467px) { 635 .option-image small { 636 display: block; 637 } 638 639 #maincontent.product-info.span12 #main-image img { 640 width: auto; 641 max-width: 100%; 642 } 643 644 #maincontent.product-info #main-defer-image { 645 width: 100%; 646 max-width: 100%; 647 } 648 649 h1.product-heading-title { 650 text-align: left; 651 padding: 20px; 652 padding-left: 12px; 653 } 654 655 #discount_list ul, 656 ol { 657 padding: 0; 658 margin: 0 0 10px 10px; 659 text-align: left; 660 } 661 } 662 663 @media only screen and (max-width: 1000px), 664 only screen and (min-device-width: 375px) and (max-device-width: 667px) and (orientation: portrait), 665 only screen and (min-device-width: 414px) and (max-device-width: 736px) and (orientation: portrait) { 666 667 .product-info .image, 668 .product-info .image img { 669 #maincontent.product-info.span12 #main-image img { 670 width: auto; 671 max-width: 100%; 672 } 673 674 #maincontent.product-info #main-defer-image { 675 width: 100%; 676 max-width: 100%; 677 } 678 679 .rightcol .cart #button-cart.button-cart.button.pull-left { 680 -webkit-transition: none; 681 transition: none; 682 } 683 } 684 685 } 686 687 688 /* 貨å°éç¥æéè¨å® */ 689 .button-stock-notify { 690 background-color: var(--arrival-notice-button-bg-color, #ffffff); 691 /* ä½¿ç¨ CSS è®æ¸ï¼æä¾é è¨å¼ */ 692 color: var(--arrival-notice-button-text-color, #333333); 693 /* ä½¿ç¨ CSS è®æ¸ï¼æä¾é è¨å¼ */ 694 border: 1px solid var(--arrival-notice-button-border-color, #d9d9d9); 695 /* ä½¿ç¨ CSS è®æ¸ï¼æä¾é è¨å¼ */ 696 border-radius: 6px; 697 padding: 10px 20px; 698 line-height: 1.42857143; 699 display: inline-block; 700 font-weight: 600; 701 text-align: center; 702 white-space: nowrap; 703 vertical-align: middle; 704 cursor: pointer; 705 transition: all .2s ease-in-out; 706 font-size: 16px; 707 width: fit-content; 708 background: linear-gradient(to bottom, 709 var(--arrival-notice-button-bg-color-light, #fdfdfd) 0%, 710 var(--arrival-notice-button-bg-color, #ffffff) 100%); 711 box-shadow: 712 0 2px 4px rgba(0, 0, 0, 0.1), 713 0 5px 15px rgba(0, 0, 0, 0.05), 714 inset 0 1px 0 rgba(255, 255, 255, 0.2); 715 border-color: var(--arrival-notice-button-border-color, #c0c0c0); 716 717 } 718 719 .button-stock-notify.small { 720 font-size: 12px; 721 padding: 0.20rem; 722 } 723 724 .button-stock-notify:hover, 725 .button-stock-notify:focus { 726 727 filter: brightness(98%); 728 /* ç¨å¾®æ¬å並å å¼·é°å½± */ 729 transform: translateY(-2px); 730 box-shadow: 731 0 4px 8px rgba(0, 0, 0, 0.15), 732 0 8px 20px rgba(0, 0, 0, 0.08), 733 inset 0 1px 0 rgba(255, 255, 255, 0.3); 734 background: linear-gradient(to bottom, 735 var(--arrival-notice-button-bg-color, #ffffff) 0%, 736 var(--arrival-notice-button-bg-color, #f0f0f0) 100%); 737 border-color: var(--arrival-notice-button-border-color, #b0b0b0); 738 color: var(--arrival-notice-button-text-color, #222222); 739 } 740 741 .button-stock-notify:active, 742 .button-stock-notify.active { 743 transform: translateY(1px); 744 box-shadow: 745 0 1px 2px rgba(0, 0, 0, 0.2), 746 inset 0 1px 2px rgba(0, 0, 0, 0.1), 747 inset 0 -1px 0 rgba(255, 255, 255, 0.1); 748 background: var(--arrival-notice-button-bg-color, #e0e0e0); 749 border-color: var(--arrival-notice-button-border-color, #a0a0a0); 750 } 751 752 .button-stock-notify.disabled, 753 .button-stock-notify[disabled] { 754 background-color: #fafafa; 755 color: #b3b3b3; 756 border-color: #e6e6e6;
757 cursor: not-allowed; 758 box-shadow: none; 759 opacity: .75; 760 } 761 762 /*ææ©æ¿æ¨£å¼*/ 763 .button-stock-notify.mobile { 764 width: 100%; 765 position: fixed; 766 bottom: 0px; 767 margin: 2px; 768 left: 0; 769 z-index: 9999; 770 margin: auto; 771 border-bottom: 0; 772 border-left: 0; 773 border-right: 0; 774 border-radius: 0; 775 padding: 10px; 776 height: 52px; 777 } 778 779 .d-inline-grid { 780 display: inline-grid; 781 } 782 783 /* ä¿®æ£å¹³æ¿è³¼è²·æéè·çåé¡ */ 784 #button-cart.fix-btn-size, 785 #button-quick-checkout.fix-btn-size { 786 position: fixed; 787 bottom: 10px; 788 padding: 0; 789 margin: 2px; 790 z-index: 999998; 791 border-radius: 0; 792 border: 0; 793 -webkit-box-shadow: none; 794 -moz-box-shadow: none; 795 box-shadow: none; 796 height: 52px; 797 line-height: 52px; 798 font-size: 16px; 799 display: block; 800 text-shadow: none 801 } 802 803 #button-cart.fix-btn-size { 804 left: 0; 805 width: 38%; 806 -webkit-transition: width .5s; 807 transition: width .5s 808 } 809 810 #button-quick-checkout.fix-btn-size { 811 right: 0; 812 width: 60%; 813 background: #31bcab; 814 color: #fafafa !important; 815 font-weight: bold; 816 font-size: 18px 817 } 818 819 #button-instant-checkout.fix-btn-size { 820 width: 60%; 821 -webkit-transition: width .5s; 822 transition: width .5s 823 } 824 825 /* ç¦æ¢è³¼è²·çæ¨£å¼ */ 826 .option-no-stock { 827 background: #f3f3f3 !important; 828 color: #c3c3c3 !important; 829 cursor: not-allowed !important; 830 } 831 832 .cursor-pointer { 833 cursor: pointer; 834 } 835 836 /* 貨å°éç¥ - å½çªé¡¯ç¤ºæ¨£å¼*/ 837 :root { 838 --lightbox-alert-error: rgb(95, 8, 2); 839 --lightbox-alert-success: #4CAF50; 840 --lightbox-alert-warning: rgb(119, 100, 71); 841 --lightbox-alert-info: rgb(0, 83, 151); 842 } 843 844 845 .lightbox-alert-icon-success { 846 color: var(--lightbox-alert-success); 847 } 848 849 .lightbox-alert-icon-error { 850 color: var(--lightbox-alert-error); 851 } 852 853 .lightbox-alert-icon-warning { 854 color: var(--lightbox-alert-warning); 855 } 856 857 .lightbox-alert-icon-info { 858 color: var(--lightbox-alert-info); 859 860 } 861 862 /* Alert å示é¡è² 貨å°éç¥*/ 863 .lightbox-alert-btn-success { 864 background: var(--lightbox-alert-success); 865 } 866 867 .lightbox-alert-btn-error { 868 background: var(--lightbox-alert-error); 869 } 870 871 .lightbox-alert-btn-warning { 872 background: var(--lightbox-alert-warning); 873 } 874 875 .lightbox-alert-btn-info { 876 background: var(--lightbox-alert-info); 877 } 878 879 .arrival-guide-guest-submit { 880 background:rgb(119, 133, 145); 881 color: #fff; 882 padding: 11px 0; 883 width: 100%; 884 border: none; 885 border-radius: 4px; 886 font-size: 16px; 887 cursor: pointer; 888 font-weight: 500; 889 } 890</style> <ol itemscope itemtype="http://schema.org/BreadcrumbList" class="breadcrumb"> <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <a itemprop="item" href="https://www.iporkcut.com.tw/"><span itemprop="name">é¦é </span></a> <meta itemprop="position" content="1" /> <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> 891 > <a itemprop="item" href="https://www.iporkcut.com.tw/product/product&product_id=66"><span itemprop="name">幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)</span></a> <meta itemprop="position" content="2" /> </li> </ol> <header class="heading"> <div id="notification"></div> </header> <div class="row-fluid"> <!-- GEO/AEO: BreadcrumbList JSON-LD -->
891<script type="application/ld+json"> 892 { 893 "@context": "https://schema.org", 894 "@type": "BreadcrumbList", 895 "itemListElement": [ 896 { 897 "@type": "ListItem", 898 "position": 1, 899 "name": "\u9996\u9801", 900 "item": "https:\/\/www.iporkcut.com.tw\/" } 901 , { 902 "@type": "ListItem", 903 "position": 2, 904 "name": "\u5e78\u798f\u79ae\u76d2(\u53e4\u65e9\u5473\u8089\u4e7e+\u9ed1\u80e1\u6912\u539a\u5207+\u7ae0\u9b5a\u82b1)", 905 "item": "https:\/\/www.iporkcut.com.tw\/product\/product&product_id=66" } 906 ] 907 } 908 </script>
908 <!-- GEO/AEO: WebPage + mainEntity -->
908<script type="application/ld+json"> 909 { 910 "@context": "https://schema.org", 911 "@type": "WebPage", 912 "name": "\u5e78\u798f\u79ae\u76d2(\u53e4\u65e9\u5473\u8089\u4e7e+\u9ed1\u80e1\u6912\u539a\u5207+\u7ae0\u9b5a\u82b1)", 913 "url": "https:\/\/www.iporkcut.com.tw\/product\/product&product_id=66", 914 "mainEntity": { 915 "@type": "Product", 916 "@id": "#product" 917 } 918 } 919 </script>
919
919<script type="application/ld+json"> 920 { 921 "@context": "https://schema.org", 922 "@type": "Product", 923 "@id": "#product", 924 "productID": "66", 925 "name": "\u5e78\u798f\u79ae\u76d2", 926 "description": "\u2605\u56b4\u9078CAS\u512a\u8cea\u8c6c\u8089 \u2605\u65b0\u9bae\u624b\u4f5c\uff0c\u7368\u7acb\u5305\u88dd \u2605\u7c73\u5176\u6797\u516d\u9762\u7099\u71d2\uff0c\u8edf\u5ae9\u591a\u6c41", 927 "image": [ 928 "https:\/\/image-cdn-flare.qdm.cloud\/q6a5dd2e0d87d6\/image\/data\/2026\/06\/10\/b31f36f5c8415c0c65122820aeebe4e6.jpg", 929 "https:\/\/image-cdn-flare.qdm.cloud\/q6a5dd2e0d87d6\/image\/data\/2021\/12\/07\/c02414399c2138c93c35749d066f31b5.jpg", 930 "https:\/\/image-cdn-flare.qdm.cloud\/q6a5dd2e0d87d6\/image\/data\/2025\/05\/27\/58e867ac065a0b9f3da5801a8d44616a.jpg", 931 "https:\/\/image-cdn-flare.qdm.cloud\/q6a5dd2e0d87d6\/image\/data\/2021\/12\/07\/65fe1e6f072ba91047a384c146e41ee5.jpg" 932 ], 933 "brand": { 934 "@type": "Brand", 935 "name": "\u5e78\u798f\u79ae\u76d2(\u53e4\u65e9\u5473\u8089\u4e7e+\u9ed1\u80e1\u6912\u539a\u5207+\u7ae0\u9b5a\u82b1)" 936 } 937 , "offers": { 938 "@type": "Offer", 939 "url": "https:\/\/www.iporkcut.com.tw\/product\/product&product_id=66", 940 "priceCurrency": "TWD", 941 "price": "750", 942 "priceValidUntil": "2027-10-08", 943 "itemCondition": "https://schema.org/NewCondition", 944 "availability": "https://schema.org/InStock", 945 "seller": { 946 "@type": "Organization", 947 "name": "æä¸æ¯æâ èä¹¾" 948 }, 949 "shippingDetails": { 950 "@type": "OfferShippingDetails", 951 "shippingRate": { 952 "@type": "MonetaryAmount", 953 "value": "0", 954 "currency": "TWD" 955 }, 956 "shippingDestination": { 957 "@type": "DefinedRegion", 958 "addressCountry": "TW" 959 }, 960 "deliveryTime": { 961 "@type": "ShippingDeliveryTime", 962 "handlingTime": { 963 "@type": "QuantitativeValue", 964 "minValue": "1", 965 "maxValue": "3", 966 "unitCode": "DAY" 967 }, 968 "transitTime": { 969 "@type": "QuantitativeValue", 970 "minValue": "1", 971 "maxValue": "3", 972 "unitCode": "DAY" 973 } 974 } 975 }, 976 "hasMerchantReturnPolicy": { 977 "@type": "MerchantReturnPolicy", 978 "applicableCountry": "TW", 979 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 980 "merchantReturnDays": "7", 981 "returnMethod": "https://schema.org/ReturnByMail", 982 "returnFees": "https://schema.org/FreeReturn" 983 } 984 } 985 } 986 </script>
986 <section id="maincontent" class="product-info span12" role="main"> <div class="mainborder"> <div class="prevnext clearfix"> <ul class="pager"> <li class="previous"> </li> <li class="next"> </li> </ul> </div> <div class="row-fluid"> <div class="leftcol"> <img id="main-defer-image" onerror='imgError(this);' src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" data-rjs="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" style="display:inline-block;" /> <div id="main-image" class="image hidden" style="padding:0px;"> <a class="fancybox-product" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" title="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)"><img pagespeed_no_defer="" id='zoom1' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" data-rjs="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" onerror='imgError(this);' data-hd-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" data-zoom-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" alt="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)" style="display:inline-block;min-height:200px;animation-duration:0s;transition: all 0s ease 0s" /></a> </div> <div id="image-additional-container" class="image-additional animated fadeIn" style="display:none;"> <ul id="image-additional"> <li><a data-fancybox="gallery" rel="group" class="zoom-active" data-fancybox-type="image" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" title="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)" data-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" data-hd-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" data-zoom-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg" class="elevatezoom-gallery"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" onerror='imgError(this);' data-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/cache/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6-120x120.jpg" title="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)" alt="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)" /></a></li> <li><a data-fancybox="gallery" rel="group" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c02414399c2138c93c35749d066f31b5.jpg" title="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)" data-fancybox-type="image" data-image="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c02414399c2138c93c35749d066f31b5.jpg" data-hd-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c02414399c2138c93c35749d066f31b5.jpg" data-zoom-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c02414399c2138c93c35749d066f31b5.jpg" class="elevatezoom-gallery"><img onerror='imgError(this);' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/cache/data/2021/12/07/c02414399c2138c93c35749d066f31b5-120x120.jpg" title="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)_1" alt="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)_1" /></a></li> <li><a data-fancybox="gallery" rel="group" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2025/05/27/58e867ac065a0b9f3da5801a8d44616a.jpg" title="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)" data-fancybox-type="image" data-image="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2025/05/27/58e867ac065a0b9f3da5801a8d44616a.jpg" data-hd-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2025/05/27/58e867ac065a0b9f3da5801a8d44616a.jpg" data-zoom-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2025/05/27/58e867ac065a0b9f3da5801a8d44616a.jpg" class="elevatezoom-gallery"><img onerror='imgError(this);' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/cache/data/2025/05/27/58e867ac065a0b9f3da5801a8d44616a-120x120.jpg" title="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)_2" alt="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)_2" /></a></li> <li><a data-fancybox="gallery" rel="group" href="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5.jpg" title="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)" data-fancybox-type="image" data-image="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5.jpg" data-hd-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5.jpg" data-zoom-image="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5.jpg" class="elevatezoom-gallery"><img onerror='imgError(this);' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/cache/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5-120x120.jpg" title="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)_3" alt="幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)_3" /></a></li> </ul> </div> </div> <!-- .span6 LEFT BOX--> <div class="rightcol"> <input type="hidden" name="EscrowDays" value="" /> <h1 class="product-heading-title">幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)</h1> <br /><span class="product-feature-content"><p><span style="font-size:20px;">精緻å è£ï¼é禮大æ¹</span></p> <p><span style="font-size:20px;">â å´é¸æ°é®®é£æè£½æâ <br /> 987â 大人å°å©é½åæâ <br /> 988â ä¼éé¶å´ç§æ®ºæ¬¾â </span></p> </span><br /> <!-- special_price_countdown start --> <!-- special_price_countdown end --> <div class="price"> <div id="price-price-block"> <span class="price-normal product-sell-price" data-content="750">$750</span> </div> <div class="discount" id="promotion_list"> </div> <!-- .discount--> </div> <!-- .price --> <div class="description"> <span>庫åçæ³</span> <span id="product-stock-current" data-display-status="0">ç¾è²¨</span> </div> <!-- .description --> <div class="cart"> <div> <br /> <input type="text" name="quantity" value="1" style="text-align: center;" /> <br /> <input type="hidden" name="product_id" value="66" id="product_id" /> <input type="hidden" name="promotion_id" id="promotion_id" value="-1" /> <div class="hidden-xs hidden-sm pull-left"> <input type="button" class="button-quick-checkout" value="ç´æ¥è³¼è²·" id="button-quick-checkout" onclick="buttonQuickCheckout();return false;" /> </div> <a id="button-cart" onclick="buttonAddToCart()" class="button-cart button pull-left"><i class="icon-spinner icon-spin hidden" style="margin-right: 8px;"></i>å å ¥è³¼ç©è»</a> </div> </div> <!-- .cart --> <div class="hidden-lg hidden-md"> <center> <input type="button" class="btn btn-default btn-block button-quick-checkout button-quick-checkout-mobile" value="ç´æ¥è³¼è²·" id="button-quick-checkout" onclick="buttonQuickCheckout();return false;" /> <a id="button-instant-checkout" class="button hidden" href="/cart">çµå¸³ <i class="fa fa-chevron-right" aria-hidden="true"></i></a> </center> </div> <div class="clearfix hidden-xs hidden-sm"></div> <div id="free_present_list" style="display:none;margin-top:32px;"></div> <div id="buy_together_list" style="display:none;margin-top:32px;"></div> <div id="error_buy_togther"></div><br /> <div id="cloudmaker_stock"> </div> <div class="more-actions"> <div class="wishlist">
988<a onclick="addToWishList('66');FB_AddToWishlist();">å å ¥é¡ææ¸ å®</a></div> <div class="compare"><a onclick="addToCompare('66');">å å ¥å忝è¼</a></div> </div> <div class="tags"> <b>æ¨ç±¤</b> <a href="/tag/èæ±è±¬èæ¢" rel="tag">èæ±è±¬èæ¢</a> </div> <div class="share"> <br /> <div class="a2a_kit a2a_kit_size_22 a2a_default_style" data-a2a-icon-color="transparent" id="my_centered_buttons"> <a class="a2a_button_line external"></a> <a class="a2a_button_facebook external"></a> <a class="a2a_button_twitter external"></a> <a class="a2a_button_google_plus external"></a> <a class="a2a_button_pinterest external"></a> </div> </div> </div> <!-- .span6 RIGHT BOX--> </div> <section id="full-info" class="clearfix"> <div id="tabs" class="htabs hidden "> <a href="#tab-description">ååä»ç´¹</a> </div> <div id="tab-description" class="tab-content"> <div id="defer-load-spin"><i class="fa fa-circle-o-notch fa-spin fa-fw"></i><br /></div> <!-- ========================================================================== 989 ãæä¸æ¯æãåå詳æ é - é ç´å¥¢è¯å°æ¥ç·¨æåªåç (ç½®ä¸é å·¦ç¾å¸ - ä¸åä¸çµåå°ç¨) 990 ========================================================================== --> <div class="ipork-product-detail-container"><!-- è¦è¦ºä¸»ååå¡ --> <div class="detail-media-group"><img alt="åå主å1" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c8eb41f150047154698e17ee8d15bf71.jpg" / /> <img alt="åå主å2" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5.jpg" / /> <img alt="åå主å3" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="//image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c02414399c2138c93c35749d066f31b5.jpg" / /> <img alt="ååç¹è²å1" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2018/09/25/7974806271bb2fd0ec3c14fd1f901fff.jpg" / /> <img alt="ååç¹è²å2" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2018/09/25/40ccdb7281f7a658ee2686a9d2bf8367.jpg" / /> <img alt="ååç¹è²å3" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2018/09/25/8be0665f72c18a6a0a6ae931575e78a0.jpg" / /></div> <hr class="section-divider" /><!-- ç¢åè¦æ ¼åæ¸è³è¨å¡ (å ¨åç½®ä¸ï¼é ç®å §æç²¾æºé 左鲿é) --> <div class="product-specifications-card"> <h3 class="spec-section-title">ç¢åè©³ç´°è¦æ ¼</h3> <div class="spec-info-list"><!-- çµåååæä»½èè¦æ ¼ï¼é å·¦é½é å®ç¾æç --> <div class="spec-item"><span class="spec-label">ååæä»½ / è¦æ ¼</span> <div class="spec-value combo-specs-group"> <div class="combo-item"><strong class="combo-name">ã夿©å³èä¹¾ã</strong> <p class="combo-detail">ç²¾é¸è±¬èã鬿²¹ãèç³ãé¹½ãèª¿å³æãæ³å®é£ç¨è²ç´ (é»è²4èã5è) ï¼ 205g ± 10g</p> </div> <div class="combo-item"><strong class="combo-name">ãé»è¡æ¤ååã</strong> <p class="combo-detail">å´é¸CAS豬èã鬿²¹ãèç³ãé¹½ãé«ç´é»è¡æ¤ã天ç¶é¦è¾æå·±äºç¯é ¸(ååä¹äºä»¥ä¸)ãäºç¡é ¸é¹½(ä¿è²å0.07kg以ä¸)ãæ³å®é£ç¨è²ç´ (ç´ è²6è) ï¼ 157g ± 10g</p> </div> <div class="combo-item"><strong class="combo-name">ãç« éè±ã</strong> <p class="combo-detail">å´é¸æ°é®®é·éãèç³ãé¹½ãå³ç²¾ãå·±äºç¯é ¸(0.1%以ä¸) ï¼ 170g ± 10g</p> </div> </div> </div> <div class="spec-item"><span class="spec-label">ä¿åæ¹å¼</span> <span class="spec-value">常溫ä¿å</span></div> <div class="spec-item"><span class="spec-label">è³å³æé</span> <span class="spec-value highlight-text">
99030天ï¼éå°å¾è«æ¼ä¸ææå §é£ç¨å®ç¢</span></div> <div class="spec-item"><span class="spec-label">å°è²¨æ¥æ</span> <span class="spec-value">仿¬¾å¾ 5 ~ 7 åå·¥ä½å¤©</span></div> <div class="spec-item"><span class="spec-label">åååå¹</span> <span class="spec-value origin-price-tag">NT$ 810 å </span></div> </div> </div> <hr class="section-divider" /><!-- åçä¿éèçµå°¾æ å¢å --> <div class="detail-media-group bottom-gallery"><img alt="æä¸æ¯æåçä¿éå1" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2018/09/25/7be88000d5c57a3b834ab3ab7299929e.jpg" / /> <img alt="æä¸æ¯æåçä¿éå2" class="lazy-loading-img" onerror="imgError(this);" src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2018/09/25/ef7592413df8476a480db470906defb1.jpg" / /></div> </div> <!-- å°çºæä¸æ¯æè¨è¨çé«ç´é»å CSS 樣å¼è¡¨ (ç½®ä¸é å·¦é«ç´è¦è¦ºè¦ç¯) --> <style type="text/css">/* 詳æ é å ¨åç°å¢éè¨ */ 991.ipork-product-detail-container { 992 max-width: 950px !important; 993 margin: 0 auto !important; 994 padding: 20px 15px !important; 995 background-color: #ffffff !important; 996 font-family: "PingFang TC", "Heiti TC", "Microsoft JhengHei", sans-serif !important; 997 color: #333333 !important; 998} 999 1000/* åçé²çèé«ç´è³ªææ§å¶ */ 1001.detail-media-group img { 1002 width: 100% !important; 1003 height: auto !important; 1004 display: block !important; 1005 margin-bottom: 25px !important; 1006 border-radius: 6px !important; 1007 box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03) !important; 1008} 1009.bottom-gallery img { 1010 margin-bottom: 20px !important; 1011} 1012 1013/* æå°æ¥µç°¡åéç· */ 1014.section-divider { 1015 border: none !important; 1016 border-top: 1px dashed #e5e5e5 !important; 1017 margin: 45px 0 !important; 1018} 1019 1020/* ========================================================================== 1021 ç¢åè©³ç´°è¦æ ¼å¡è¨è¨ï¼å ¨åç½®ä¸ãé ç®é å·¦é½è¡ä¸æéï¼ 1022 ========================================================================== */ 1023.product-specifications-card { 1024 background: #ffffff !important; 1025 padding: 10px 5px !important; 1026 text-align: center !important; /* ä¿æå¤§æ¨é¡å容卿¡æ¶ç½®ä¸ */ 1027} 1028 1029.spec-section-title { 1030 font-size: 19px !important; 1031 color: #222222 !important; 1032 font-weight: bold !important; 1033 margin: 0 auto 35px auto !important; 1034 display: inline-block !important; 1035 position: relative !important; 1036 padding-bottom: 10px !important; 1037} 1038/* 質æåçè²ç½®ä¸ä¸è¥¯ç· */ 1039.spec-section-title::after { 1040 content: '' !important; 1041 position: absolute !important; 1042 bottom: 0 !important; 1043 left: 50% !important; 1044 transform: translateX(-50%) !important; 1045 width: 35px !important; 1046 height: 3px !important; 1047 background-color: #b51a63 !important; 1048 border-radius: 2px !important; 1049} 1050 1051/* æ¸ å®å®¹å¨ç½®ä¸éå® */ 1052.spec-info-list { 1053 display: flex !important; 1054 flex-direction: column !important; 1055 gap: 0 !important; 1056 max-width: 650px !important; /* é縮é»éé±è®å¯¬åº¦ï¼ç¢ºä¿å¨ç«é¢æ£ä¸å¤® */ 1057 margin: 0 auto !important; 1058 background-color: #ffffff !important; 1059} 1060 1061/* æ¯åè¦æ ¼æ¢ç®ï¼å·¦å³ä¸¦æãåç´ç½®ä¸ãæåé å·¦ */ 1062.spec-item { 1063 display: flex !important; 1064 flex-direction: row !important; 1065 align-items: flex-start !important; 1066 border-bottom: 1px solid #f7f7f7 !important; 1067 padding: 16px 10px !important; 1068 text-align: left !important; /* æ¢ç®å §å®¹å®å ¨é å·¦å°é½ */ 1069} 1070.spec-item:last-child { 1071 border-bottom: none !important; 1072} 1073 1074/* 左崿¬ä½å稱æ¨ç±¤ */ 1075.spec-label { 1076 font-weight: bold !important; 1077 color: #b51a63 !important; /* åçæ¡ç´ è² */ 1078 font-size: 15px !important; 1079 width: 110px !important; /* åºå®å¯¬åº¦ï¼ç¢ºä¿å³å´å §å®¹å°é½ç·çµå°ä¸è´ */ 1080 flex-shrink: 0 !important; 1081 letter-spacing: 1px !important; 1082} 1083 1084/* å³å´è©³ç´°è¦æ ¼èªªæï¼æåé å·¦é½è¡ï¼çµä¸ä»»ææéæ£è½ï¼ */ 1085.spec-value { 1086 color: #555555 !important; 1087 font-size: 15px !important; 1088 line-height: 1.6 !important; 1089 text-align: left !important; 1090} 1091 1092/* çµåååç´°é æçåªåï¼é å·¦é½é æç */ 1093.combo-specs-group { 1094 display: flex !important; 1095 flex-direction: column !important; 1096 gap: 12px !important; 1097 width: 100% !important; 1098} 1099.combo-item { 1100 background-color: #fafafa !important; /* è¼å¾®ç°åºè¥¯æçµåçµæ§ */ 1101 padding: 12px 14px !important; 1102 border-radius: 4px !important; 1103 border-left: 3px solid #b51a63 !important; /* 精緻左å´åçè²è£é£¾ç· */ 1104 text-align: left !important; 1105} 1106.combo-name { 1107 color: #222222 !important; 1108 font-size: 14px !important; 1109 display: block !important; 1110 margin-bottom: 4px !important; 1111} 1112.combo-detail { 1113 margin: 0 !important; 1114 font-size: 14px !important; 1115 color: #666666 !important; 1116 line-height: 1.5 !important; 1117 text-align: left !important; 1118} 1119 1120/* è³å³æéè¦åè²åªå */ 1121.highlight-text { 1122 color: #d93838 !important; 1123 font-weight: 500 !important; 1124} 1125.origin-price-tag { 1126 font-family: Arial, sans-serif !important; 1127 color: #444444 !important; 1128} 1129 1130/* ========================================================================== 1131 RWD ææ©ç«¯èªåèª¿é©æç 1132 ========================================================================== */ 1133@media (max-width: 768px) { 1134 .ipork-product-detail-container { 1135 padding: 10px !important; 1136 } 1137 .spec-info-list { 1138 max-width: 100% !important; 1139 } 1140 .spec-item { 1141 flex-direction: column !important; 1142 gap: 6px !important; 1143 padding: 14px 5px !important; 1144 } 1145 .spec-label { 1146 width: 100% !important; 1147 } 1148} 1149</style> </div> <!-- #tab-description --> </section> </div> </section> </div> <!-- ååé¸é å½è·³è¦çª --> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title" id="myModalLabel">ååé¸é </h4> </div> <div id="cart_options_list" class="modal-body"></div> <div class="modal-footer"> <button type="button" class="button" id="button-change-option" style="height: 48px; width: 100%; background: #31bcab; color: #FFF; font-size: 14px; text-align: center; border-radius: 4px; text-shadow: none;">確å®</button> </div> </div> </div> </div> <!-- ååè³è¨ --> <div style="width: 75%;position: fixed;left: 50%;margin: 0 0 0 -37.5%;" class="modal fade" id="myModal_prod" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title" id="myModalLabel">ååè³è¨</h4> </div> <div id="prod_data" class="modal-body"> </div> <div class="modal-footer"> </div> </div> </div> </div> <div class="prevnext clearfix"> <ul class="pager"> <li class="previous"> </li> <li class="next"> </li> </ul> </div>
1149<script> 1150 const goods_arrival_notice_switch_status = 0; 1151 var xOffset = 10; 1152 var yOffset = 30; 1153 var jsLoadProductTimeout = null; 1154 global_product_id = '66'; 1155 1156 // GOOGLE TRACKING PRODUCT DETAILS VIEWS 1157 function gaTrackProductView() { 1158 // UA 1159 dataLayer.push({ 1160 'ecommerce': { 1161 'detail': { 1162 'products': [{ 1163 'name': '幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)', 1164 'id': '66', 1165 'price': '750', 1166 'category': 'å¹´ç¯ç¦®ç', 1167 }] 1168 } 1169 } 1170 }); 1171 // GA4 1172 dataLayer.push({ 1173 'event': 'view_item', 1174 'ecommerce': { 1175 'items': [{ 1176 'item_name': '幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)', 1177 'item_id': '66', 1178 'price': '750', 1179 'item_category': 'å¹´ç¯ç¦®ç', 1180 'quantity': '1' 1181 }] 1182 } 1183 }); 1184 1185 1186 1187 } 1188 1189 function gaTrackProductAddToCart() { 1190 var qty = 1; 1191 if ($("select[name='quantity']").length) { 1192 qty = $("select[name='quantity'] option:selected").val(); 1193 } else { 1194 qty = $("input[name='quantity']").val(); 1195 } 1196 // UA 1197 dataLayer.push({ 1198 'event': 'addToCart', 1199 'ecommerce': { 1200 'currencyCode': '', 1201 'add': { 1202 'products': [{ 1203 'name': '幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)', 1204 'id': '66', 1205 'price': '750', 1206 'category': 'å¹´ç¯ç¦®ç', 1207 'quantity': qty 1208 }] 1209 } 1210 } 1211 }); 1212 // GA4 1213 dataLayer.push({ 1214 'event': 'add_to_cart', 1215 'ecommerce': { 1216 'items': [{ 1217 'item_name': '幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)', 1218 'item_id': '66', 1219 'price': '750', 1220 'item_category': 'å¹´ç¯ç¦®ç', 1221 'quantity': qty 1222 }] 1223 } 1224 }); 1225 1226 1227 1228 } 1229 1230 // IMPORTANT: global_quuid MUST be (re)generated by the caller BEFORE invoking this for 1231 // "AddToCart". The CAPI beacon echoed inside (AddToCart.tpl) reads global_quuid from JS 1232 // scope for its quuid; the FB Pixel that fires after the caller uses the same global_quuid 1233 // as eventID. Regenerating global_quuid between this call and the Pixel breaks Meta dedup. 1234 function gaTrackMultiPixelsAddToCart(EventType) { 1235 1236 if (typeof(EventType) === 'undefined') EventType = ''; 1237 1238 1239 var qty = 1; 1240 if ($("select[name='quantity']").length) { 1241 qty = $("select[name='quantity'] option:selected").val(); 1242 } else { 1243 qty = $("input[name='quantity']").val(); 1244 } 1245 1246 gecommProductToCart.product_id = 66; 1247 gecommProductToCart.price = 750; 1248 gecommProductToCart.quantity = qty; 1249 gecommProductToCart.product_name = '幸ç¦ç¦®ç(夿©å³èä¹¾+é»è¡æ¤åå+ç« éè±)'; 1250 gecommProductToCart.image_url = 'https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2026/06/10/b31f36f5c8415c0c65122820aeebe4e6.jpg'; 1251 gecommProductToCart.product_url = "https://www.iporkcut.com.tw/product/product&product_id=66"; 1252 gecommProductToCart.sku = ""; 1253 1254 if (EventType == "AddToCart") { 1255 } 1256 1257 } 1258 1259 function checked_option(option_id) { 1260 $("label.checkbox #option-value-" + option_id).prop("checked", true); 1261 $("label.checkbox #option-value-" + option_id).closest("label.checkbox").addClass("opton-selected"); 1262 if (parseInt($("#add-quantity-" + option_id).val()) <= 0) { 1263 $("#add-quantity-" + option_id).val(1); 1264 } 1265 } 1266 1267 function loadproddata(v1) { 1268 1269 if (is.not.desktop()) { 1270 $('.button-cart').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 1271 $('.button-quick-checkout').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 1272 } 1273 1274 $('#prod_data').html("<br/><center><i class='icon-spinner icon-spin icon-large'></i></center>"); 1275 1276 $.ajax({ 1277 url: 'index.php?route=product/product_info&product_id=' + v1, 1278 dataType: 'html', 1279 beforeSend: function() {}, 1280 success: function(html) { 1281 $('#prod_data').html(html); 1282 }, 1283 error: function(xhr, ajaxOptions, thrownError) { 1284 console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 1285 } 1286 }); 1287 } 1288 1289 function autosize(ImgD, h, w) { 1290 var image = new Image(); 1291 image.src = ImgD.src; 1292 if (image.width < w && image.height < h) { 1293 ImgD.width = image.width; 1294 ImgD.height = image.height; 1295 } else { 1296 if (w / h <= image.width / image.height) { 1297 ImgD.width = w; 1298 ImgD.height = w * (image.height / image.width); 1299 } else {
1300 ImgD.width = h * (image.width / image.height); 1301 ImgD.height = h; 1302 } 1303 } 1304 1305 } 1306 1307 function buttonQuickCheckout() { 1308 if ($("select[name='quantity']").length) { 1309 check_qty = $("select[name='quantity'] option:selected").val(); 1310 } else { 1311 check_qty = $("input[name='quantity']").val(); 1312 } 1313 1314 if (check_qty == 0) { 1315 $(".alert-danger").remove(); 1316 $('#product_id').after('<div class="alert alert-danger" role="alert">å忏éè¦å¤§æ¼0ï¼</div>'); 1317 return false; 1318 } 1319 1320 if ($(".div_group[data-required]").length) { 1321 $(".alert-error").remove(); 1322 1323 var r = 0; 1324 var v_qty; 1325 $(".div_group[data-required]").each(function(index) { 1326 var required = $(this).data("required") || 0; 1327 v_qty = 0; 1328 $(this).find(".free_present_qty").each(function() { 1329 1330 v_qty = v_qty + parseInt($(this).val()); 1331 }); 1332 1333 if (required == 1 && v_qty == 0) r++; 1334 }); 1335 1336 if (r > 0) { 1337 $('#free_present_list').before('<div class="alert alert-error" style="margin-bottom:0px;margin-top:30px;"> * å¿ é¸çè´åé ç®è«é¸æï¼</div>'); 1338 1339 $('html, body').animate({ 1340 scrollTop: ($('#free_present_list').offset().top - 150) 1341 }, 1000); 1342 iziToast.show({ 1343 timeout: 3000, 1344 color: '#eb4359', 1345 messageColor: '#FFF', 1346 message: "* å¿ é¸çè´åé ç®è«é¸æ", 1347 position: 'center', 1348 progressBar: false, 1349 progressBarEasing: 'ease', 1350 }); 1351 1352 return false; 1353 } 1354 if ($(".warning").text().length > 0) { 1355 return false; 1356 } 1357 1358 } 1359 if ($("#options .control-group[data-max-qty]").length) { 1360 var r = true; 1361 $("#options .control-group[data-max-qty]").each(function(index) { 1362 var option_ckb_id = $(this).data("option-id") || 0; 1363 if (option_ckb_id) { 1364 r = checkCheckboxOptionQtyLimition(option_ckb_id); 1365 if (r == false) return false; 1366 } 1367 }); 1368 if (r == false) return false; 1369 } 1370 $('.button-quick-checkout').attr("disabled", "disabled"); 1371 $('.icon-spinner').removeClass('hidden'); 1372 $("input[name='product_id']").attr("value", 66); 1373 1374 var add_cart_url = 'index.php?route=checkout/cart/add'; 1375 1376 1377 $.ajax({ 1378 url: add_cart_url, 1379 type: 'post', 1380 data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea,.cart input[name=\'promption_id\']'), 1381 dataType: 'json', 1382 success: function(json) { 1383 $(".error").remove(); 1384 $(".alert-danger").remove(); 1385 $('.icon-spinner').addClass('hidden'); 1386 $('.button-quick-checkout').removeAttr("disabled", "disabled"); 1387 var error_option_msg = 0; 1388 1389 if (json['error']) { 1390 1391 $(".error").remove(); 1392 1393 if (json['error']['option']) { 1394 $(".alert-error").remove(); 1395 var error_option_msg = 0; 1396 for (i in json['error']['option']) { 1397 1398 error_option_msg = json['error']['option'][i]; 1399 1400 if (is.not.desktop()) { 1401 1402 $('#option-' + i).after('<div class="alert alert-error">' + json['error']['option'][i] + '</div>'); 1403 1404 } else { 1405 1406 $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '<br/></span>'); 1407 } 1408 } 1409 if (error_option_msg) { 1410 iziToast.show({ 1411 timeout: 3000, 1412 color: '#eb4359', 1413 messageColor: '#FFF', 1414 message: error_option_msg, 1415 position: 'center', 1416 progressBar: false, 1417 progressBarEasing: 'ease', 1418 }); 1419 } 1420 } 1421 1422 if (json['error']['prod_stock']) { 1423 1424 if (is.not.desktop()) { 1425 1426 $(".alert-error").remove(); 1427 $('#product_id').after('<div class="alert alert-danger" role="alert">' + json['error']['prod_stock'] + '</div>'); 1428 iziToast.show({ 1429 timeout: 3000, 1430 color: '#eb4359', 1431 messageColor: '#FFF', 1432 message: json['error']['prod_stock'], 1433 position: 'center', 1434 progressBar: false, 1435 progressBarEasing: 'ease', 1436 }); 1437 1438 } else { 1439 1440 $(".alert-danger").remove(); 1441 $('#product_id').after('<div class="alert alert-danger" role="alert">' + json['error']['prod_stock'] + '</div>'); 1442 1443 } 1444 1445 } 1446 1447 if (json['error']['buy_together']) { 1448 for (j in json['error']['buy_together']) { 1449 $('#error_buy_togther').after('<span class="error bg-danger">' + json['error']['buy_together'][j] + '</span>'); 1450 } 1451 } 1452 1453 } 1454 1455 if (json['success']) { 1456 // fb-capi: regenerate ONE shared event id per AddToCart BEFORE any tracker fires, 1457 // so Pixel(eventID) and CAPI(quuid) match and Meta can dedup the pair. 1458 global_quuid = QUUID(); 1459 try { 1460 gaTrackMultiPixelsAddToCart("AddToCart"); 1461 } catch (e) {} 1462 try { 1463 gaTrackProductAddToCart(); 1464 } catch (e) {} 1465 1466 var qty = 1; 1467 if ($("select[name='quantity']").length) { 1468 qty = $("select[name='quantity'] option:selected").val(); 1469 } else { 1470 qty = $("input[name='quantity']").val(); 1471 } 1472 1473 1474 var product_price = qty * 750; 1475 1476 1477 1478 setTimeout(function() { 1479 window.location.href = "https://www.iporkcut.com.tw/cart"; 1480 }, 1000); 1481 } 1482 1483 if (is.not.desktop()) { 1484 if (json['error']) { 1485 1486 $('html, body').animate({ 1487 scrollTop: $('#options').offset().top 1488 }, 'slow'); 1489 1490 } 1491 } 1492 1493 1494 if (json?.error?.prod_stock || error_option_msg != 0) { 1495 1496 if (hasStockError(json.error.prod_stock) || hasStockError(error_option_msg)) { 1497 setTimeout(() => { 1498 showStockAlertBtn(1); 1499 }, 200); 1500 } 1501 } 1502 1503 } 1504 }); 1505 return false;
1506 1507 } 1508 1509 function FB_AddToWishlist() { 1510 try { 1511 gaTrackMultiPixelsAddToCart("AddToWishlist"); 1512 } catch (e) {} 1513 } 1514 1515 // button-cart 1516 function buttonAddToCart() { 1517 if ($("select[name='quantity']").length) { 1518 check_qty = $("select[name='quantity'] option:selected").val(); 1519 } else { 1520 check_qty = $("input[name='quantity']").val(); 1521 } 1522 1523 if (check_qty == 0) { 1524 $(".alert-danger").remove(); 1525 $('#product_id').after('<div class="alert alert-danger" role="alert">å忏éè¦å¤§æ¼0ï¼</div>'); 1526 return false; 1527 } 1528 1529 if ($(".div_group[data-required]").length) { 1530 1531 $(".alert-error").remove(); 1532 1533 var r = 0; 1534 var v_qty; 1535 $(".div_group[data-required]").each(function(index) { 1536 var required = $(this).data("required") || 0; 1537 v_qty = 0; 1538 $(this).find(".free_present_qty").each(function() { 1539 1540 v_qty = v_qty + parseInt($(this).val()); 1541 }); 1542 1543 if (required == 1 && v_qty == 0) r++; 1544 }); 1545 1546 if (r > 0) { 1547 $('#free_present_list').before('<div class="alert alert-error" style="margin-bottom:0px;margin-top:30px;"> * å¿ é¸çè´åé ç®è«é¸æï¼</div>'); 1548 1549 $('html, body').animate({ 1550 scrollTop: ($('#free_present_list').offset().top - 150) 1551 }, 1000); 1552 1553 iziToast.show({ 1554 timeout: 3000, 1555 color: '#eb4359', 1556 messageColor: '#FFF', 1557 message: "* å¿ é¸çè´åé ç®è«é¸æ", 1558 position: 'center', 1559 progressBar: false, 1560 progressBarEasing: 'ease', 1561 }); 1562 1563 return false; 1564 } 1565 1566 if ($(".warning").text().length > 0) { 1567 return false; 1568 } 1569 } 1570 1571 if ($("#options .control-group[data-max-qty]").length) { 1572 var r = true; 1573 $("#options .control-group[data-max-qty]").each(function(index) { 1574 var option_ckb_id = $(this).data("option-id") || 0; 1575 if (option_ckb_id) { 1576 r = checkCheckboxOptionQtyLimition(option_ckb_id); 1577 if (r == false) return false; 1578 } 1579 }); 1580 if (r == false) return false; 1581 } 1582 1583 $('.button-cart').attr("disabled", "disabled"); 1584 $('.icon-spinner').removeClass('hidden'); 1585 $("input[name='product_id']").attr("value", 66); 1586 $(".alert-danger").remove(); 1587 1588 var add_cart_url = 'index.php?route=checkout/cart/add'; 1589 1590 1591 $.ajax({ 1592 url: add_cart_url, 1593 type: 'post', 1594 data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea,.cart input[name=\'promption_id\']'), 1595 dataType: 'json', 1596 success: function(json) { 1597 1598 $('.success, .warning, .attention, information, .error').remove(); 1599 $('.icon-spinner').addClass('hidden'); 1600 1601 if (json['error']) { 1602 1603 $(".error").remove(); 1604 1605 if (json['error']['option']) { 1606 $(".alert-error").remove(); 1607 var error_option_msg = 0; 1608 for (i in json['error']['option']) { 1609 1610 error_option_msg = json['error']['option'][i]; 1611 1612 if (is.not.desktop()) { 1613 1614 $('#option-' + i).after('<div class="alert alert-error">' + json['error']['option'][i] + '</div>'); 1615 1616 } else { 1617 1618 $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '<br/></span>'); 1619 1620 } 1621 } 1622 if (error_option_msg) { 1623 iziToast.show({ 1624 timeout: 3000, 1625 color: '#eb4359', 1626 messageColor: '#FFF', 1627 message: error_option_msg, 1628 position: 'center', 1629 progressBar: false, 1630 progressBarEasing: 'ease', 1631 }); 1632 } 1633 } 1634 1635 if (json['error']['prod_stock']) { 1636 1637 if (is.not.desktop()) { 1638 1639 $(".alert-error").remove(); 1640 $('#product_id').after('<div class="alert alert-danger" role="alert">' + json['error']['prod_stock'] + '</div>'); 1641 iziToast.show({ 1642 timeout: 3000, 1643 color: '#eb4359', 1644 messageColor: '#FFF', 1645 message: json['error']['prod_stock'], 1646 position: 'center', 1647 progressBar: false, 1648 progressBarEasing: 'ease', 1649 }); 1650 1651 } else { 1652 1653 $(".alert-danger").remove(); 1654 $('#product_id').after('<div class="alert alert-danger" role="alert">' + json['error']['prod_stock'] + '</div>'); 1655 1656 } 1657 1658 } 1659 1660 if (json['error']['buy_together']) { 1661 for (j in json['error']['buy_together']) { 1662 $('#error_buy_togther').after('<span class="error bg-danger">' + json['error']['buy_together'][j] + '</span>'); 1663 } 1664 } 1665 1666 $('.button-cart').removeAttr("disabled", "disabled"); 1667 if (json?.error?.prod_stock || error_option_msg != 0) { 1668 if (hasStockError(json.error.prod_stock) || hasStockError(error_option_msg)) { 1669 setTimeout(() => { 1670 showStockAlertBtn(1); 1671 }, 200); 1672 } 1673 } 1674 } 1675 1676 if (is.not.desktop()) { 1677 if (json['error']) { 1678 1679 $('html, body').animate({ 1680 scrollTop: $('#options').offset().top 1681 }, 'slow'); 1682 1683 } 1684 } 1685 1686 if (json['success']) { 1687 1688 // fb-capi: regenerate ONE shared event id per AddToCart BEFORE any tracker fires, 1689 // so Pixel(eventID) and CAPI(quuid) match and Meta can dedup the pair. 1690 global_quuid = QUUID(); 1691 try { 1692 gaTrackMultiPixelsAddToCart("AddToCart"); 1693 } catch (e) {} 1694 try { 1695 gaTrackProductAddToCart(); 1696 } catch (e) {} 1697 1698 var qty = 1; 1699 if ($(".cart select[name='quantity']").length) { 1700 qty = $(".cart select[name='quantity'] option:selected").val(); 1701 } else { 1702 qty = $(".cart input[name='quantity']").val(); 1703 } 1704 1705 1706 var product_price = qty * 750; 1707 1708 1709 1710 $('#notification').html('<div class="alert alert-success" style="display: none;">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">×</button></div>'); 1711 1712 $('.alert').fadeIn('slow'); 1713 1714 $('#cart-total').html(json['total']); 1715 1716 1717 var scroll_time = 700; 1718 var ToScrollTop = 0; 1719 if (is.not.desktop()) { 1720 scroll_time = 300; 1721 ToScrollTop = document.documentElement.scrollTop; 1722 } 1723 1724 $('html, body').animate({ 1725 ToScrollTop: 0 1726 }, scroll_time, function() { 1727 1728 1729 var attr = $('.button-cart').attr('disabled'); 1730 if (typeof attr !== typeof undefined && attr !== false) { 1731 1732 var cart = $('#cart'); 1733 var imgtodrag = $('#zoom1'); 1734 var cart_top = 50; 1735 1736 var cart_right = $(window).width() / 1.5; 1737 1738 if (is.not.desktop()) { 1739 cart_right = $("#mobile-navbar #shopping-cart-list").offset().left; 1740 } else { 1741 cart_right = $("#header #cart").offset().left; 1742 } 1743 1744 if (cart_right < 100) cart_right = $(window).width() / 1.5; 1745 1746 if (is.not.desktop()) { 1747 cart = $('#mobile-navbar .icon-shopping-cart'); 1748 cart_top = 0; 1749 $('#cart-total-items').html("( " + json['total'] + " )"); 1750 $(".button-quick-checkout-mobile").remove(); 1751 $("#button-cart").unbind("click"); 1752 $("#button-cart").find('.ok-add-to-cart').remove(); 1753 $("#button-cart").prepend('<span class="ok-add-to-cart animated fadeIn"><i class="fa fa-check" aria-hidden="true"></i> </span>'); 1754 $("#button-instant-checkout").removeClass('hidden'); 1755 1756 } 1757 1758 var imgclone = imgtodrag.clone() 1759 .offset({ 1760 top: imgtodrag.offset().top, 1761 left: imgtodrag.offset().left 1762 }) 1763 .css({ 1764 'opacity': '1.0', 1765 'position': 'absolute', 1766 'top': imgtodrag.offset().top, 1767 'left': imgtodrag.offset().left, 1768 'height': $('#zoom1').width(), 1769 'width': $('#zoom1').height(), 1770 'z-index': '99999999999', 1771 'minHeight': '50px' 1772 }) 1773 .appendTo($('body')) 1774 .animate({ 1775 'top': cart_top, 1776 'left': cart_right, 1777 'width': 36, 1778 'height': 20, 1779 'opacity': '0.01' 1780 }, 700, 'easeInOutCirc', function() { 1781 $(imgclone).remove(); 1782 imgclone.detach(); 1783 }); 1784 1785 if (is.not.desktop()) { 1786 openSideCart('66'); 1787 } 1788 1789 } 1790 1791 if (is.desktop()) { 1792 $("#cart > .heading a").trigger('mouseover'); 1793 setTimeout(function() { 1794 refreshMiniCartScrollBar(); 1795 }, 300); 1796 } 1797 1798 1799 $('.button-cart').removeAttr("disabled", "disabled"); 1800 1801 1802 1803 }); 1804 1805 } 1806 1807 1808 } 1809 }); 1810 return false;
1811 1812 } 1813 1814 function addReview() { 1815 $.ajax({ 1816 url: 'index.php?route=product/product/write&product_id=66', 1817 type: 'post', 1818 dataType: 'json', 1819 data: 'name=' + encodeURIComponent($('input[name=\'name\']').val()) + '&text=' + encodeURIComponent($('textarea[name=\'text\']').val()) + '&rating=' + encodeURIComponent($('input[name=\'rating\']:checked').val() ? $('input[name=\'rating\']:checked').val() : '') + '&captcha=' + encodeURIComponent($('input[name=\'captcha\']').val()) + '&cf-turnstile-response=' + encodeURIComponent(window.qdmProductReviewTurnstile ? window.qdmProductReviewTurnstile.getResponse() : ($('input[name=\'cf-turnstile-response\']').val() || '')), 1820 beforeSend: function() { 1821 $('.success, .warning').remove(); 1822 $('#button-review').attr('disabled', true); 1823 $('#review-title').after('<div class="attention"><img src="https://cdn.qdm.cloud/assets/images/loading.gif" alt="" /> è«ç¨ç</div>'); 1824 }, 1825 complete: function() { 1826 $('#button-review').attr('disabled', false); 1827 $('.attention').remove(); 1828 if (window.qdmProductReviewTurnstile) { 1829 window.qdmProductReviewTurnstile.reset(); 1830 } 1831 }, 1832 success: function(data) { 1833 if (data['error']) { 1834 $('#review-title').after('<div class="warning">' + data['error'] + '</div>'); 1835 } 1836 1837 if (data['success']) { 1838 $('#review-title').after('<div class="success">' + data['success'] + '</div>'); 1839 1840 $('input[name=\'name\']').val(''); 1841 $('textarea[name=\'text\']').val(''); 1842 $('input[name=\'rating\']:checked').attr('checked', ''); 1843 $('input[name=\'captcha\']').val(''); 1844 1845 $('#review').load('index.php?route=product/product/review&product_id=66'); 1846 1847 postbackTrack(); 1848 } 1849 } 1850 }); 1851 } 1852 1853 function postbackTrack() { 1854 } 1855 1856 function init_review() { 1857 1858 $('#review .pagination a').each(function(index) { 1859 var href = $(this).attr("href"); 1860 $(this).attr("href", "javascript:void(0);return false;"); 1861 $(this).attr("data-href", href); 1862 }); 1863 1864 $('#review .pagination a').click(function() { 1865 1866 var link = $(this).attr("data-href"); 1867 1868 $('<i id="review-spin-wait" class="fa fa-circle-o-notch fa-spin fa-fw"></i>').insertBefore($('#review')); 1869 1870 $('#review').fadeOut('slow'); 1871 1872 $('#review').load(link, function() { 1873 init_review(); 1874 $('#review-spin-wait').remove(); 1875 $('#review').fadeIn('slow'); 1876 }); 1877 1878 return false; 1879 1880 }); 1881 } 1882 1883 function isFacebookApp() { 1884 var ua = navigator.userAgent || navigator.vendor || window.opera; 1885 return (ua.indexOf("FBAN") > -1) || (ua.indexOf("FBAV") > -1); 1886 } 1887 1888 function numberWithCommas(x) { 1889 return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); 1890 } 1891 1892 function update_saleprice_based_select_options(optid) { 1893 var ori_prices = $("#price-price-block .product-sell-price").data("content"); 1894 var currency_symbol_left = "$"; 1895 var currency_symbol_right = ""; 1896 var currency_value = 1; 1897 var currency_decimal_place = 0; 1898 function formatPrice(rawBase) { 1899 var v = (parseFloat(rawBase) || 0) * currency_value; 1900 return currency_symbol_left + numberWithCommas(v.toFixed(currency_decimal_place)) + currency_symbol_right; 1901 } 1902 var total_saleprices = ori_prices; 1903 var saleprices_flag = 0; 1904 $("#options .control-group").find(".controls").each(function(index) { 1905 var selected = $(this).find("select option[value]:selected"); 1906 if (selected && selected != undefined) { 1907 var prefix = $(selected).data("prefix"); 1908 var price = $(selected).data("price"); 1909 if (prefix && prefix != undefined) { 1910 if (price && price != undefined) { 1911 switch (prefix) { 1912 case "=": 1913 saleprices_flag = 1; 1914 total_saleprices = price; 1915 break; 1916 } 1917 } 1918 } 1919 } 1920 }); 1921 $("#options .control-group").find(".controls").each(function(index) { 1922 var selected = $(this).find("select option[value]:selected"); 1923 if (selected && selected != undefined) { 1924 var prefix = $(selected).data("prefix"); 1925 var price = $(selected).data("price"); 1926 if (prefix && prefix != undefined) { 1927 if (price && price != undefined && !isNaN(parseFloat(price))) { 1928 switch (prefix) { 1929 case "+": 1930 saleprices_flag = 1; 1931 total_saleprices = (parseFloat(total_saleprices) || 0) + parseFloat(price); 1932 break; 1933 case "-": 1934 saleprices_flag = 1; 1935 total_saleprices = (parseFloat(total_saleprices) || 0) - parseFloat(price); 1936 break; 1937 } 1938 } 1939 } 1940 } 1941 }); 1942 if (saleprices_flag) { 1943 if (total_saleprices < 0) { 1944 total_saleprices = 0; 1945 } 1946 $("#price-price-block .price-old").hide(); 1947 $("#price-price-block .product-sell-price").text(formatPrice(total_saleprices)); 1948 } else { 1949 var expected_text = formatPrice(ori_prices); 1950 if ($("#price-price-block .product-sell-price").text() !== expected_text) { 1951 $("#price-price-block .price-old").show(); 1952 $("#price-price-block .product-sell-price").text(expected_text); 1953 } 1954 } 1955 $("#price-price-block").hide(); 1956 $("#price-price-block").fadeIn(2000); 1957 1958 1959 1960 } 1961 1962 function changeRadioProductVariation(product_option_value_id, option_id) { 1963 document.getElementById('option-value-' + product_option_value_id).checked = true; 1964 $("#option-" + option_id + ".control-group label.radio").removeClass("opton-selected"); 1965 $("#option-" + option_id + ".control-group label.radio #option-value-" + product_option_value_id).closest("label.radio").addClass("opton-selected"); 1966 return false;
1967 } 1968 1969 function init_inline() { 1970 loadCSS("https://cdnjs.cloudflare.com/ajax/libs/hint.css/1.2.1/hint.min.css"); 1971 if (typeof stop_custom_variation_style === 'undefined') { 1972 loadCSS("https://cdn.qdm.cloud/assets/css/product_variation_option_custom.css?v=220914"); 1973 } 1974 getScript("https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.nice-number.min.js", function() { 1975 $("#options .multicheck-options").niceNumber({ 1976 'autoSize': false, 1977 onDecrement: function($currentInput, amount, settings) { 1978 if (amount < 1) { 1979 $currentInput.val(1); 1980 } 1981 var opt_val_ta = $currentInput.closest("label.checkbox").attr("for"); 1982 $("#" + opt_val_ta).prop("checked", true); 1983 $("#" + opt_val_ta).closest("label.checkbox").addClass("opton-selected"); 1984 var data_option_id = $("#" + opt_val_ta).closest("[data-option-id]").data("option-id"); 1985 checkCheckboxOptionQtyLimition(data_option_id); 1986 }, 1987 onIncrement: function($currentInput, amount, settings) { 1988 var opt_val_ta = $currentInput.closest("label.checkbox").attr("for"); 1989 $("#" + opt_val_ta).prop("checked", true); 1990 $("#" + opt_val_ta).closest("label.checkbox").addClass("opton-selected"); 1991 var data_option_id = $("#" + opt_val_ta).closest("[data-option-id]").data("option-id"); 1992 checkCheckboxOptionQtyLimition(data_option_id); 1993 } 1994 }); 1995 $("#options label.checkbox").find("input[type='checkbox']").change(function() { 1996 var checked_state = $(this).is(':checked'); 1997 if (checked_state) { 1998 $(this).closest("label.checkbox").addClass("opton-selected"); 1999 $(this).closest("label.checkbox").find(".multicheck-options").val(1); 2000 } else { 2001 $(this).closest("label.checkbox").removeClass("opton-selected"); 2002 $(this).closest("label.checkbox").find(".multicheck-options").val(0); 2003 } 2004 }); 2005 $("#options").fadeIn("slow"); 2006 }); 2007 2008 //20220113 Fix è³¼ç©åçé¸é é»é¸åç忥é¸åé¸é 2009 if ($(".option-image").length) { 2010 $(".option-image").find("a").click(function() { 2011 $(this).parents(".option-image").find("input[id^='option-value-']").attr('checked', 'checked'); 2012 }); 2013 } 2014 //20210510 Add é¸é é£åååå å®é¸åæé£åå 2015 $(".changeImage label.radio").click(function() { 2016 if ($(".changeImage input[type='radio']:checked") || $(".changeImage select option:selected")) { 2017 var optionImage = []; 2018 $(".changeImage").each(function(i) { 2019 if ($(this).find("input[type='radio']:checked").length && $(this).find("input[type='radio']:checked").val()) { 2020 optionImage[i] = []; 2021 optionImage[i][0] = $(this).attr("id").replace("option-", ""); 2022 optionImage[i][1] = $(this).find("input[type='radio']:checked").val(); 2023 } 2024 if ($(this).find("select option:selected").length && $(this).find("select option:selected").val()) { 2025 optionImage[i] = []; 2026 optionImage[i][0] = $(this).attr("id").replace("option-", ""); 2027 optionImage[i][1] = $(this).find("select option:selected").val(); 2028 } 2029 2030 }); 2031 $.ajax({ 2032 url: 'index.php?route=product/product_options/povToPoi', 2033 type: 'POST', 2034 dataType: 'html', 2035 data: { 2036 pid: $("#product_id").val(), 2037 optionImage: optionImage 2038 }, 2039 beforeSend: function() {}, 2040 success: function(json) { 2041 $("#image-additional li a").each(function() { 2042 if ($(this).hasClass("zoom-active")) { 2043 $(this).removeClass('zoom-active'); 2044 } 2045 }); 2046 if (json) { 2047 $("#image-additional li").find("img[src='" + json + "']").parents("a").addClass("zoom-active").trigger("mouseenter"); 2048 // 220608 Fix ååé£ååææ©ç大å䏿è®ååé¡ 2049 if (is.not.desktop()) { 2050 var zoomImg = $("#image-additional li").find("img[src='" + json + "']").parents("a").attr("href"); 2051 $('#zoom1').attr("src", zoomImg); 2052 $('#zoom1').data("hd-image", zoomImg); 2053 $('#zoom1').data("zoom-image", zoomImg); 2054 // åçé¸é 2055 $('html,body').animate({ 2056 scrollTop: $("#options").offset().top - 70 2057 }, "show"); 2058 } 2059 } else { 2060 $("#image-additional li a").eq(0).addClass("zoom-active").trigger("mouseenter"); 2061 // 220608 Fix ååé£ååææ©ç大å䏿è®ååé¡ 2062 if (is.not.desktop()) { 2063 var zoomImg = $("#image-additional li a").eq(0).attr("href"); 2064 $('#zoom1').attr("src", zoomImg); 2065 $('#zoom1').data("hd-image", zoomImg); 2066 $('#zoom1').data("zoom-image", zoomImg); 2067 // åçé¸é 2068 $('html,body').animate({ 2069 scrollTop: $("#options").offset().top - 70 2070 }, "show"); 2071 } 2072 } 2073 }, 2074 error: function(xhr, ajaxOptions, thrownError) { 2075 //alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 2076 } 2077 }); 2078 } 2079 }); 2080 //20210510 Add é¸é é£åååå 䏿é¸å®åæé£åå 2081 $(".changeImage select").change(function() { 2082 if ($(".changeImage input[type='radio']:checked") || $(".changeImage select option:selected")) { 2083 var optionImage = []; 2084 $(".changeImage").each(function(i) { 2085 if ($(this).find("input[type='radio']:checked").length && $(this).find("input[type='radio']:checked").val()) { 2086 optionImage[i] = []; 2087 optionImage[i][0] = $(this).attr("id").replace("option-", ""); 2088 optionImage[i][1] = $(this).find("input[type='radio']:checked").val(); 2089 } 2090 if ($(this).find("select option:selected").length && $(this).find("select option:selected").val()) { 2091 optionImage[i] = []; 2092 optionImage[i][0] = $(this).attr("id").replace("option-", ""); 2093 optionImage[i][1] = $(this).find("select option:selected").val(); 2094 } 2095 2096 }); 2097 $.ajax({ 2098 url: 'index.php?route=product/product_options/povToPoi', 2099 type: 'POST', 2100 dataType: 'html', 2101 data: { 2102 pid: $("#product_id").val(), 2103 optionImage: optionImage 2104 }, 2105 beforeSend: function() {}, 2106 success: function(json) { 2107 $("#image-additional li a").each(function() { 2108 if ($(this).hasClass("zoom-active")) { 2109 $(this).removeClass('zoom-active'); 2110 } 2111 }); 2112 if (json) { 2113 $("#image-additional li").find("img[src='" + json + "']").parents("a").addClass("zoom-active").trigger("mouseenter"); 2114 // 220608 Fix ååé£ååææ©ç大å䏿è®ååé¡ 2115 if (is.not.desktop()) { 2116 var zoomImg = $("#image-additional li").find("img[src='" + json + "']").parents("a").attr("href"); 2117 $('#zoom1').attr("src", zoomImg); 2118 $('#zoom1').data("hd-image", zoomImg); 2119 $('#zoom1').data("zoom-image", zoomImg); 2120 // åçé¸é 2121 $('html,body').animate({ 2122 scrollTop: $("#options").offset().top - 70 2123 }, "show"); 2124 } 2125 } else { 2126 $("#image-additional li a").eq(0).addClass("zoom-active").trigger("mouseenter"); 2127 // 220608 Fix ååé£ååææ©ç大å䏿è®ååé¡ 2128 if (is.not.desktop()) { 2129 var zoomImg = $("#image-additional li a").eq(0).attr("href"); 2130 $('#zoom1').attr("src", zoomImg); 2131 $('#zoom1').data("hd-image", zoomImg); 2132 $('#zoom1').data("zoom-image", zoomImg); 2133 // åçé¸é 2134 $('html,body').animate({ 2135 scrollTop: $("#options").offset().top - 70 2136 }, "show"); 2137 } 2138 } 2139 }, 2140 error: function(xhr, ajaxOptions, thrownError) { 2141 //alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 2142 } 2143 }); 2144 } 2145 }); 2146 2147 setTimeout(function() { 2148 if (is.not.desktop()) { 2149 $('#zoom1').attr("src", $('#zoom1').data("hd-image")); 2150 } 2151 }, 1500); 2152 2153 getScript("https://static.addtoany.com/menu/page.js", function() {}); 2154
2155 $('#myModal').on('show.bs.modal', function(e) { 2156 if (is.not.desktop()) { 2157 $('.button-cart').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 2158 $('.button-quick-checkout').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 2159 } 2160 }); 2161 2162 $("#myModal").on("hidden.bs.modal", function(e) { 2163 if (is.not.desktop()) { 2164 $('.button-cart').removeClass("fadeOutDown").addClass("animated fadeInUp"); 2165 $('.button-quick-checkout').removeClass("fadeOutDown").addClass("animated fadeInUp"); 2166 } 2167 }); 2168 2169 2170 $(".ck_buy_tgr").prop("checked", false); 2171 2172 window.onload = function() { 2173 setTimeout(function() { 2174 new Image().src = "https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/c02414399c2138c93c35749d066f31b5.jpg"; 2175 new Image().src = "https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2025/05/27/58e867ac065a0b9f3da5801a8d44616a.jpg"; 2176 new Image().src = "https://image-cdn-flare.qdm.cloud/q6a5dd2e0d87d6/image/data/2021/12/07/65fe1e6f072ba91047a384c146e41ee5.jpg"; 2177 }, 1000); 2178 }; 2179 2180 if (is.not.desktop()) { 2181 $("#maincontent").removeClass("span9").addClass("span12"); 2182 $("#main-image").attr("style", "padding:0px;overflow:hidden;min-height:initial;"); 2183 if (!isFacebookApp() && !disabledScroll) { 2184 setTimeout(function() { 2185 $('.button-cart').addClass("animated fadeOutDown"); 2186 $('.button-quick-checkout-mobile').addClass("animated fadeOutDown"); 2187 }, 1500); 2188 } 2189 $('#zoom1').attr("src", $('#zoom1').data("hd-image")); 2190 } 2191 2192 2193 if (is.desktop()) { 2194 2195 $("#zoom1").imagesLoaded(function() { 2196 2197 $("#main-defer-image").remove(); 2198 $("#main-image").removeClass("hidden"); 2199 2200 $("#zoom1").elevateZoom({ 2201 easing: false, 2202 gallery: 'image-additional', 2203 cursor: 'pointer', 2204 galleryActiveClass: "zoom-active", 2205 zoomWindowFadeIn: 0, 2206 zoomWindowFadeOut: 0, 2207 zoomWindowWidth: 0, 2208 zoomWindowHeight: 0, 2209 lensSize: 0, 2210 borderSize: 0, 2211 lensFadeIn: 0, 2212 lensFadeOut: 0, 2213 tint: false, 2214 tintColour: '#fff', 2215 tintOpacity: 0, 2216 scrollZoom: false, 2217 imageCrossfade: false, 2218 loadingIcon: "", 2219 responsive: true 2220 }); 2221 2222 var ez = $('#zoom1').data('elevateZoom'); 2223 ez.refresh(); 2224 2225 $(".zoomContainer").remove(); 2226 2227 $("#image-additional-container").show(); 2228 2229 syncThumbsWidth(); 2230 }); 2231 } 2232 2233 2234 $("#image-additional a").hover(function() { 2235 $(".zoomContainer").remove(); 2236 var image_pop_url = $(this).data("zoom-image"); 2237 var image_base_url = $(this).data("image"); 2238 $("#main-image .fancybox-product").attr("href", image_pop_url); 2239 if (image_base_url) { 2240 $("#zoom1").attr("src", image_base_url); 2241 } 2242 }); 2243 2244 2245 2246 // Load options_list_window 2247 $('input[name^="add_price"]').bind('click', function() { 2248 2249 $('#cart_options_list').html("<br/><center><i class='icon-spinner icon-spin icon-large'></i></center>"); 2250 2251 v1 = $(this).val(); 2252 v2 = 1; 2253 $.ajax({ 2254 url: 'index.php?route=product/product_options&key=' + v1 + '&quantity=' + v2, 2255 dataType: 'html', 2256 beforeSend: function() {}, 2257 success: function(html) { 2258 2259 $('#cart_options_list').html(html); 2260 2261 }, 2262 error: function(xhr, ajaxOptions, thrownError) { 2263 //alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 2264 } 2265 }); 2266 2267 setTimeout($.unblockUI, 1000); 2268 }); 2269 2270 2271 $('.close').bind('click', function() { 2272 2273 prod_id = $("#prod_id").val(); 2274 bytr_id = $("#buy_together_id").val(); 2275 2276 $('#add_price_' + prod_id + '-' + bytr_id).attr("checked", false); 2277 $('#cart_options_list').html(""); 2278 }); 2279 2280 //å å ¥ï¼æé¸é ï¼ 2281 $('#button-change-option').bind('click', function() { 2282 2283 let hasError = false; 2284 $('.options').find('span.required').each(function() { 2285 let parentDiv = $(this).closest('div[id^="option-"]'); 2286 let optionId = parentDiv.attr('id').split('-')[1]; 2287 let input = parentDiv.find('select, input[type="radio"], input[type="checkbox"], input[type="text"], textarea'); 2288 2289 let valid = false; 2290 2291 if (input.length) { 2292 if (input.is('select')) { 2293 valid = input.val() !== ""; 2294 } else if (input.is(':radio') || input.is(':checkbox')) { 2295 valid = input.is(':checked'); 2296 } else { 2297 valid = input.val().trim() !== ""; 2298 } 2299 } 2300 2301 if (!valid) { 2302 parentDiv.after('<span class="error">æ¤çºå¿ å¡«é¸é ï¼è«é¸ææè¼¸å ¥</span>'); 2303 hasError = true; 2304 } 2305 }); 2306 2307 if (hasError) return false;
2308 2309 if ($(".options .form-group[data-max-qty]").length) { 2310 var r = true; 2311 $(".options .form-group[data-max-qty]").each(function(index) { 2312 var option_ckb_id = $(this).data("option-id") || 0; 2313 if (option_ckb_id) { 2314 r = checkCheckboxOptionQtyLimition(option_ckb_id); 2315 if (r == false) return false; 2316 } 2317 }); 2318 if (r == false) return false; 2319 } 2320 2321 prod_id = $("#prod_id").val(); 2322 bytr_id = $("#buy_together_id").val(); 2323 2324 $.ajax({ 2325 url: 'index.php?route=product/product_options/validate', 2326 type: 'post', 2327 data: $('#cart_options_list .options input[type=\'text\'], #cart_options_list .options input[type=\'hidden\'], #cart_options_list .options input[type=\'radio\']:checked, #cart_options_list .options input[type=\'checkbox\']:checked, #cart_options_list .options select, #cart_options_list .options textarea, #cart_options_list .quantity_div input[type=\'text\']'), 2328 dataType: 'json', 2329 success: function(json) { 2330 2331 $(".error").remove(); 2332 $(".alert").remove(); 2333 2334 if (json['error']) { 2335 2336 if (json['error']['option']) { 2337 for (i in json['error']['option']) { 2338 2339 $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '<br/></span>'); 2340 } 2341 } 2342 2343 } else { 2344 2345 $('#lab_addprice_' + prod_id + '-' + bytr_id + ' .add-additional-purchase-option').html("<input type=hidden name=add_price_options_" + prod_id + "-" + bytr_id + " value='" + json['options'] + "' ><span class='label'>" + json['options_name'] + "</span>"); 2346 2347 $('#cart_options_list').html(""); 2348 $('#myModal').hide(); 2349 $('.modal-backdrop').remove(); 2350 $('#add_price_' + prod_id + '-' + bytr_id).attr("checked", true); 2351 2352 if (is.not.desktop()) { 2353 $('.button-cart').removeClass("fadeOutDown").addClass("animated fadeInUp"); 2354 $('.button-quick-checkout').removeClass("fadeOutDown").addClass("animated fadeInUp"); 2355 } 2356 2357 } 2358 2359 } 2360 }); 2361 }); 2362 2363 var oldURL = document.referrer; 2364 2365 $.fancybox.defaults.hash = false; 2366 2367 $("[data-fancybox='images']").fancybox({ 2368 afterLoad: function(instance, slide) { 2369 if ($(".fancybox-container").length > 1) { 2370 $(".fancybox-container").not(':first').remove(); 2371 } 2372 }, 2373 afterClose: function() { 2374 window.onhashchange = function(e) { 2375 if (window.location.hash.indexOf("#gallery") != -1) { 2376 e.preventDefault(); 2377 $.fancybox.close(); 2378 if (is.not.empty(oldURL)) { 2379 window.onhashchange = null; 2380 window.location.href = oldURL; 2381 } 2382 return false; 2383 } 2384 } 2385 } 2386 }); 2387 2388 if (is.desktop()) { 2389 2390 $("#main-image .fancybox-product").click(function(e) { 2391 e.stopPropagation(); 2392 e.preventDefault(); 2393 var $links = $("[data-fancybox='gallery']"); 2394 var zoom_active_index = $("#image-additional li > a.zoom-active").parent().index(); 2395 $.fancybox.open($links, { 2396 hash: false 2397 }, zoom_active_index); 2398 if ($(".fancybox-container").length > 1) { 2399 $(".fancybox-container").not(':first').remove(); 2400 } 2401 return false; 2402 }); 2403 2404 $("#image-additional a").click(function(e) { 2405 e.stopPropagation(); 2406 e.preventDefault(); 2407 var $links = $("[data-fancybox='gallery']"); 2408 var zoom_active_index = $("#image-additional li > a.zoom-active").parent().index(); 2409 $.fancybox.open($links, { 2410 hash: false 2411 }, zoom_active_index); 2412 if ($(".fancybox-container").length > 1) { 2413 $(".fancybox-container").not(':first').remove(); 2414 } 2415 return false; 2416 }); 2417 2418 } else { 2419 2420 $("#main-image .fancybox-product").click(function(e) { 2421 e.stopPropagation(); 2422 e.preventDefault(); 2423 var $links = $("[data-fancybox='gallery']"); 2424 $.fancybox.open($links, { 2425 hash: false 2426 }, 0); 2427 if ($(".fancybox-container").length > 1) { 2428 $(".fancybox-container").not(':first').remove(); 2429 } 2430 return false; 2431 }); 2432 2433 $("[data-fancybox='gallery']").fancybox({ 2434 hash: false 2435 }); 2436 } 2437 2438 $("a.screenshot").hover(function(e) { 2439 this.t = this.title; 2440 this.title = ""; 2441 var c = (this.t != "") ? "<br/>" + this.t : ""; 2442 this.rel = this.rel.replace(" noopener noreferrer nofollow", ""); 2443 $("body").append("<p id='screenshot'><img src='" + this.rel + "' alt='url preview' />" + c + "</p>"); 2444 $("#screenshot") 2445 .css("top", (e.pageY - xOffset) + "px") 2446 .css("left", (e.pageX + yOffset) + "px") 2447 .fadeIn("fast"); 2448 }, function() { 2449 this.title = this.t; 2450 $("#screenshot").remove(); 2451 }); 2452
2453 $("a.screenshot").mousemove(function(e) { 2454 $("#screenshot") 2455 .css("top", (e.pageY - xOffset) + "px") 2456 .css("left", (e.pageX + yOffset) + "px"); 2457 }); 2458 2459 $('#review').load('index.php?route=product/product/review&product_id=66', function() { 2460 init_review(); 2461 }); 2462 2463 2464 $('.date').datepicker({ 2465 dateFormat: 'yy-mm-dd' 2466 }); 2467 $('.datetime').datetimepicker({ 2468 dateFormat: 'yy-mm-dd', 2469 timeFormat: 'HH:mm', 2470 controlType: 'select' 2471 }); 2472 $('.time').timepicker({ 2473 timeFormat: 'h:m' 2474 }); 2475 2476 $('[data-toggle="tooltip"]').tooltip(); 2477 2478 2479 if (is.not.desktop()) { 2480 2481 $("#zoom1").imagesLoaded(function() { 2482 $("#main-defer-image").remove(); 2483 $("#main-image").removeClass("hidden"); 2484 $("#image-additional-container").show(); 2485 }); 2486 2487 $("#image-additional").find(".zoom-active").removeClass("zoom-active"); 2488 2489 var lastScroll = 0; 2490 var lastDirection = 0; 2491 var down = true; 2492 var delta = 0; 2493 $(window).on("scroll", function() { 2494 2495 if ($("#myModal").css('display') == 'block') { 2496 $('.button-cart').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 2497 $('.button-quick-checkout').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 2498 } 2499 2500 if (isFacebookApp() || disabledScroll) { 2501 $('.button-cart').removeClass("hidden animated fadeOutDown"); 2502 $('.button-quick-checkout-mobile').removeClass("hidden animated fadeOutDown"); 2503 return; 2504 } 2505 2506 var scroll = $(this).scrollTop(); 2507 down = scroll > lastScroll; 2508 delta = Math.abs(lastScroll - scroll); 2509 lastScroll = scroll; 2510 if ((down != lastDirection)) { 2511 if (down == true) { 2512 if (delta > 15) { 2513 $('.button-cart').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 2514 $('.button-quick-checkout-mobile').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 2515 } 2516 2517 } else { 2518 $('.button-cart').removeClass("hidden animated fadeOutDown").addClass("animated fadeInUp"); 2519 $('.button-quick-checkout-mobile').removeClass("hidden animated fadeOutDown").addClass("animated fadeInUp"); 2520 } 2521 2522 } 2523 lastDirection = down; 2524 2525 }); 2526 2527 if (isFacebookApp() || disabledScroll) { 2528 $(window).unbind("scroll"); 2529 $('#button-cart').attr("class", "button-cart button pull-left"); 2530 $('#button-quick-checkout').attr("class", "btn btn-default btn-block button-quick-checkout button-quick-checkout-mobile"); 2531 $('#button-cart').show(); 2532 $('#button-quick-checkout').show(); 2533 } 2534 } 2535 2536 2537 enableDataSelectsClick(); 2538 } 2539 2540 function loadislogin() { 2541 2542 $("#login_n").hide(); 2543 } 2544 2545 function loadpromotionlist() { 2546 var html = ""; 2547 $.ajax({ 2548 url: "index.php?route=product/product/getLoggedInPromotionList&product_id=66", 2549 type: "post", 2550 dataType: "json", 2551 success: function(json) { 2552 if (json.length > 0) { 2553 html += '<hr/><h4>ä¿é·æ´»å</h4>'; 2554 html += '<ul>'; 2555 for (var i = 0; i < json.length; i++) { 2556 2557 html += ' <li class="promotion-forward-button button button-default"><a href="' + json[i]["promotion_url"] + '" style="text-decoration:none;"> ' + json[i]["name"] + ' <i class="icon-double-angle-right"></i></a></li> '; 2558 2559 } 2560 html += '</ul>'; 2561 2562 $("#promotion_list").html(html); 2563 } 2564 //console.log(json.length); 2565 }, 2566 2567 error: function() { 2568 console.log("error"); 2569 } 2570 }); 2571 } 2572 2573 //cloudmaker_stock 2574 function load_cloudmaker() { 2575 $.ajax({ 2576 url: 'index.php?route=cloudmaker/order/wareHouseOrdernew&product_sku=' + encodeURIComponent('0'), 2577 dataType: 'json', 2578 type: "post", 2579 success: function(json) { 2580 2581 if (json['error']) { 2582 console.log(json['error']); 2583 } else { 2584 var cjson = json["cred_response"]; 2585 2586 if (cjson.length > 0) { 2587 2588 var cloudmaker_value = ""; 2589 var cloudmaker_header = ""; 2590 var cloudmaker_body = ""; 2591 var i = 0; 2592 2593 cjson.forEach(function(data) { 2594 cloudmaker_body += "<tr>"; 2595 cloudmaker_body += " <td style='border:1px solid #ddd;padding:6px;text-align: center;'>" + data.size + "</td>"; 2596 2597 var stock = data.stock; 2598 2599 $.each(stock, function() { 2600 2601 $.each(this, function(name, value) { 2602 if (i == 0) { 2603 cloudmaker_header += " <td style='border:1px solid #ddd;padding:6px;text-align: center;'>" + name + "</td>"; 2604 } 2605 cloudmaker_body += " <td style='border:1px solid #ddd;padding:6px;text-align: center;'>" + value + "</td>"; 2606 }); 2607 2608 i++; 2609 }); 2610 2611 cloudmaker_body += "</tr>"; 2612 2613 }); 2614 2615 cloudmaker_value = "<table style='max-width:450px; width:100%;margin-bottom:6px;'>"; 2616 cloudmaker_value += "<tr style='font-weight: bold;'>"; 2617 cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>尺寸</td>"; 2618 cloudmaker_value += cloudmaker_header; 2619 /*cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>å°åå°è¥¿é</td>"; 2620 cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>æ±åæè¦</td>"; 2621 cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>å¤ç¾èª å</td>"; 2622 cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>ä¿¡ç¾©èª å</td>";*/ 2623 cloudmaker_value += "</tr>"; 2624 cloudmaker_value += cloudmaker_body; 2625 cloudmaker_value += "</table>"; 2626 cloudmaker_value += "<span> åº«åæ´æ°æéï¼2026-10-08 04:43:10 (éæ°æ´çç¶²é å¯å徿æ°åº«åè³è¨)</span><br/>"; 2627 //cloudmaker_value += "<span style='font-weight: bold;'>ç¸½çæ¸ : "+ cjson.length +" ç</span>"; 2628 //cloudmaker_value += "<hr/>"; 2629 2630 $('#cloudmaker_stock').append(cloudmaker_value); 2631 2632 } else { 2633 console.log("cloudmaker_stock(0) is null"); 2634 } 2635 } 2636 2637 }, 2638 error: function(xhr, ajaxOptions, thrownError) { 2639 //console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 2640 } 2641 }); 2642 2643 2644 } 2645 2646 function load_options() { 2647 $.ajax({ 2648 url: 'index.php?route=product/product_options&key=66&type=prod', 2649 dataType: 'html', 2650 beforeSend: function() {}, 2651 success: function(html) { 2652 2653 $('#options').html(html); 2654 2655 }, 2656 error: function(xhr, ajaxOptions, thrownError) { 2657 //alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 2658 } 2659 }); 2660 } 2661 2662 function checkCheckboxOptionQtyLimition(option_id) { 2663 2664 try { 2665 var max_qty = parseInt($("#options #option-" + option_id).data("max-qty")) || 0; 2666 var min_qty = parseInt($("#options #option-" + option_id).data("min-qty")) || 0; 2667 var option_checkbox_name = $("#options #option-" + option_id).data("option-name"); 2668 if (max_qty || min_qty) { 2669 $("#options #option-" + option_id).find(".alert-error").remove();
2670 var qty_total_chk = 0; 2671 $("#options #option-" + option_id).find("input[type='text'].CheckboxOptionQtyGroup").each(function(index) { 2672 var pov_id = $(this).data("pov-id"); 2673 if ($("#option-value-" + pov_id).is(':checked')) { 2674 qty_total_chk += parseInt($(this).val()) || 0; 2675 } 2676 }); 2677 //貨å°éç¥æ²æéï¼æéå¶å¯é¸ç¸½æ¸é 2678 if (goods_arrival_notice_switch_status == 0) { 2679 if (max_qty) { 2680 if (qty_total_chk > max_qty) { 2681 $("#options #option-" + option_id + " > label.control-label").after("<div class='alert alert-error'>é¸é 總æ¸é éå¶æå¤ " + max_qty + " é ï¼è«éæ°ä¿®æ¹æ¸é"); 2682 return false; 2683 } 2684 } 2685 if (min_qty) { 2686 if (qty_total_chk < min_qty) { 2687 $("#options #option-" + option_id + " > label.control-label").after("<div class='alert alert-error'>é¸é 總æ¸é è³å°é " + min_qty + " é ï¼è«éæ°ä¿®æ¹æ¸é"); 2688 return false; 2689 } 2690 } 2691 } 2692 } 2693 } catch (e) {} 2694 return true; 2695 } 2696 2697 var a2a_config = a2a_config || {}; 2698 a2a_config.locale = "zh-TW"; 2699 2700 try { 2701 var main_image_element = document.getElementById("main-defer-image"); 2702 main_image_element = function() { 2703 main_image_element.style.opacity = 1; 2704 main_image_element.style.transition = "all 0.2s"; 2705 }; 2706 } catch (e) {} 2707 2708 function load_free_present() { 2709 2710 var pid = 66; 2711 2712 var price = $('#price-price-block .price-normal').attr('data-content'); 2713 2714 if (!price) price = $('#price-price-block .price-new').attr('data-content'); 2715 2716 var qty = $('input[name="quantity"]').val(); 2717 2718 if (!qty) qty = $('select[name="quantity"]').val(); 2719 2720 $.ajax({ 2721 url: 'index.php?route=module/free_present', 2722 type: 'post', 2723 dataType: 'html', 2724 data: { 2725 pid: pid, 2726 price: price, 2727 qty: qty 2728 }, 2729 beforeSend: function() {}, 2730 success: function(html) { 2731 $('#free_present_list').html(html); 2732 $('#free_present_list').show(); 2733 }, 2734 error: function(xhr, ajaxOptions, thrownError) { 2735 //console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 2736 } 2737 }); 2738 } 2739 2740 2741 function syncThumbsWidth() { 2742 try { 2743 var mainWidth = $('#main-image').outerWidth(); 2744 if (!mainWidth || mainWidth < 1) { 2745 mainWidth = $('#zoom1').outerWidth(); 2746 } 2747 if (mainWidth && mainWidth > 0) { 2748 $('#image-additional, #image-additional-container').css({ 2749 'width': mainWidth + 'px', 2750 'float': 'right' 2751 }); 2752 } 2753 } catch (e) {} 2754 } 2755 2756 try { 2757 $(window).on('resize', syncThumbsWidth); 2758 } catch (e) {} 2759</script>
2759 </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"> <!-- ========================================================================== 2760 ãæä¸æ¯æãå ¨èªè¨å°æ¥é å°¾åå¡ (第ä¸çæ¡æ©éåã»ææ©ç FB é±èæ¸ ç½ 3 æ¬ç) 2761 ========================================================================== --> <div class="custom-site-footer"> <div class="footer-main-container"><!-- æ¬ä½ 1ï¼ååºè¨æ¯ --> <div class="footer-links-column"> <h4>ååºè¨æ¯</h4> <ul> <li><a href="https://www.iporkcut.com.tw/pages/4">éæ¼æå</a></li> <li><a href="/categories/æ¢é·åå">æ¢é·åå</a></li> <li><a href="/categories/ç¹è³£åå">ç¹è³£åå</a></li> </ul> </div> <!-- æ¬ä½ 2ï¼å®¢æ¶æå --> <div class="footer-links-column"> <h4>å®¢æ¶æå</h4> <ul> <li><a href="https://www.iporkcut.com.tw/shop/contact">ååºçè¨æ¿</a></li> <li><a href="https://www.iporkcut.com.tw/about/policy">ååé/æè²¨</a></li> <li><a href="/pages/remittance-form">填坫坿¬¾å®</a></li> <li><a href="https://www.iporkcut.com.tw/member/order">å¿«éæ¥è¨å®</a></li> </ul> </div> <!-- æ¬ä½ 3ï¼æå¡ä¸å¿ --> <div class="footer-links-column"> <h4>æå¡ä¸å¿</h4> <ul> <li><a href="https://www.iporkcut.com.tw/member/member">æå¡ä¸å¿</a></li> <li><a href="https://www.iporkcut.com.tw/member/order">è¨è³¼ç´é</a></li> </ul> </div> <!-- æ¬ä½ 4ï¼å³å´ æè£½é«è³ªæèæ¸æ¥µç°¡å°å¾½ç« (é»è ¦çå®ç¾é¡¯ç¾ï¼ææ©çå°å±¬é±è) --> <div class="footer-fb-column"> <div class="fb-badge-wrapper"> <div class="fb-badge-top"> <div class="fb-badge-logo"><img alt="æä¸æ¯æèä¹¾" onerror="imgError(this);" src="https://graph.facebook.com/iporkcut/picture?type=large" /></div> <div class="fb-badge-text"><a class="fb-badge-title" href="https://www.facebook.com/iporkcut" target="_blank" rel="noopener noreferrer nofollow">æä¸æ¯æèä¹¾</a> <div class="fb-badge-fans">1.1 è¬ ä½è¿½è¹¤è </div> </div> </div> <div class="fb-badge-bottom"><a class="fb-btn-follow" href="https://www.facebook.com/iporkcut" target="_blank" rel="noopener noreferrer nofollow"><svg viewbox="0 0 24 24"><path d="M12 2.04c-5.5 0-10 4.49-10 10.02c0 5 3.66 9.15 8.44 9.9v-7H7.9v-2.9h2.54V9.85c0-2.51 1.49-3.89 3.78-3.89c1.09 0 2.23.19 2.23.19v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56v1.88h2.78l-.45 2.9h-2.33v7a10 10 0 0 0 8.44-9.9c0-5.53-4.5-10.02-10-10.02Z" fill="currentColor"></path></svg> 追蹤ç²çµ²å°é </a> <a class="fb-btn-share" href="https://www.facebook.com/sharer/sharer.php?u=https://www.iporkcut.com.tw/" target="_blank"> <svg viewbox="0 0 24 24"><path d="M18.08 12.74c-.72 0-1.37.32-1.83.83l-5.34-2.83a2.44 2.44 0 0 0 0-1.48l5.27-2.79c.46.52 1.13.85 1.89.85c1.41 0 2.55-1.14 2.55-2.55c0-1.42-1.14-2.56-2.55-2.56c-1.42 0-2.56 1.14-2.56 2.56c0 .25.04.49.1.71L10.29 8.27c-.46-.51-1.12-.83-1.87-.83c-1.41 0-2.55 1.14-2.55 2.56c0 1.41 1.14 2.55 2.55 2.55c.76 0 1.42-.32 1.88-.84l5.34 2.83c-.06.21-.09.44-.09.68c0 1.41 1.14 2.55 2.55 2.55c1.41 0 2.56-1.14 2.56-2.55c0-1.42-1.15-2.56-2.56-2.56Z" fill="currentColor"></path></svg> å享 </a></div> </div> </div> </div> </div> <!-- å°å±¬ç²¾å¯åªå樣å¼è¡¨ --> <style type="text/css">/* ========================================================================== 2762 第ä¸çæ¡æ©æ¨£å¼ï¼éå大氣æç 2763 ========================================================================== */ 2764.custom-site-footer { 2765 background-color: #ffffff !important; 2766 padding: 60px 20px 50px 20px !important; 2767 border-top: 1px solid #f0f0f0 !important; 2768 width: 100% !important; 2769 box-sizing: border-box !important; 2770 font-family: "PingFang TC", "Heiti TC", "Microsoft JhengHei", sans-serif !important; 2771 display: block !important; 2772 margin-bottom: 0 !important; 2773} 2774 2775.footer-main-container { 2776 max-width: 1200px !important; 2777 margin: 0 auto !important; 2778 display: flex !important; 2779 flex-direction: row !important; 2780 flex-wrap: nowrap !important; 2781 justify-content: space-between !important;
2782 align-items: flex-start !important; 2783} 2784 2785.footer-links-column { 2786 width: calc((100% - 390px - 60px) / 3) !important; 2787 min-width: 140px !important; 2788 box-sizing: border-box !important; 2789} 2790 2791.footer-fb-column { 2792 width: 360px !important; 2793 flex-shrink: 0 !important; 2794} 2795 2796.footer-links-column h4 { 2797 color: #333333 !important; 2798 font-size: 16px !important; 2799 font-weight: bold !important; 2800 margin: 0 0 20px 0 !important; 2801 letter-spacing: 1px !important; 2802} 2803 2804.footer-links-column ul { 2805 list-style: none !important; 2806 padding: 0 !important; 2807 margin: 0 !important; 2808} 2809 2810.footer-links-column li { 2811 margin-bottom: 12px !important; 2812} 2813 2814.footer-links-column a { 2815 color: #666666 !important; 2816 font-size: 14px !important; 2817 text-decoration: none !important; 2818 transition: color 0.3s ease !important; 2819 display: inline-block !important; 2820} 2821 2822.footer-links-column a:hover { 2823 color: #b51a63 !important; 2824} 2825 2826.fb-badge-wrapper { 2827 background: #ffffff !important; 2828 border: 1px solid #e9ebee !important; 2829 box-sizing: border-box !important; 2830 width: 100% !important; 2831 padding: 0 !important; 2832} 2833 2834.fb-badge-top { 2835 display: flex !important; 2836 padding: 12px !important; 2837 background: #ffffff !important; 2838 align-items: center !important; 2839} 2840 2841.fb-badge-logo { 2842 width: 50px !important; 2843 height: 50px !important; 2844 border: 1px solid #d3d3d3 !important; 2845 padding: 0 !important; 2846 background: #ffffff !important; 2847 flex-shrink: 0 !important; 2848 overflow: hidden !important; 2849} 2850 2851.fb-badge-logo img { 2852 width: 100% !important; 2853 height: 100% !important; 2854 object-fit: cover !important; 2855} 2856 2857.fb-badge-text { 2858 margin-left: 12px !important; 2859} 2860 2861.fb-badge-title { 2862 color: #365899 !important; 2863 font-size: 18px !important; 2864 font-weight: bold !important; 2865 text-decoration: none !important; 2866 display: block !important; 2867 margin-bottom: 2px !important; 2868} 2869 2870.fb-badge-fans { 2871 color: #4b4f56 !important; 2872 font-size: 13px !important; 2873} 2874 2875.fb-badge-bottom { 2876 background: #f5f6f7 !important; 2877 border-top: 1px solid #e9ebee !important; 2878 padding: 8px 12px !important; 2879 display: flex !important; 2880 justify-content: space-between !important; 2881 align-items: center !important; 2882} 2883 2884.fb-badge-bottom a { 2885 background: #f5f6f7 !important; 2886 border: 1px solid #ccd0d5 !important; 2887 color: #4b4f56 !important; 2888 font-size: 12px !important; 2889 font-weight: bold !important; 2890 padding: 4px 10px !important; 2891 border-radius: 2px !important; 2892 text-decoration: none !important; 2893 display: inline-flex !important; 2894 align-items: center !important; 2895} 2896 2897.fb-badge-bottom svg { 2898 width: 14px !important; 2899 height: 14px !important; 2900 margin-right: 6px !important; 2901 color: #4267b2 !important; 2902} 2903 2904/* ========================================================================== 2905 ææ©ç§»å端å°ç¨ï¼3 æ¬ç·æ¹æçï¼ãFB åå¡ç©çè¸ç¼é±èã 2906 ========================================================================== */ 2907@media (max-width: 1100px) { 2908 .footer-main-container { flex-wrap: wrap !important; } 2909 .footer-links-column { width: calc((100% - 380px) / 2) !important; margin-bottom: 25px !important; } 2910} 2911 2912@media (max-width: 768px) { 2913 .custom-site-footer { 2914 padding: 20px 15px !important; 2915 } 2916 2917 .footer-main-container { 2918 display: flex !important; 2919 flex-direction: column !important; 2920 gap: 0 !important; 2921 } 2922 2923 /* ééµåï¼å¨ææ©çç´æ¥å°æ´å FB æ¬ä½å¾ç«é¢ä¸æ¹é¤ */ 2924 .footer-fb-column { 2925 display: none !important; 2926 } 2927 2928 .footer-links-column { 2929 width: 100% !important; 2930 display: block !important; 2931 margin-bottom: 0 !important; 2932 margin-top: 0 !important; 2933 padding-right: 0 !important; 2934 } 2935
2936 /* 3 åæåæ¨é¡é«åº¦æ¶ç· */ 2937 .footer-links-column h4 { 2938 position: relative !important; 2939 display: block !important; 2940 margin: 0 !important; 2941 padding-top: 7px !important; 2942 padding-bottom: 7px !important; 2943 padding-right: 40px !important; 2944 line-height: 1.2 !important; 2945 border-bottom: 1px solid #eaeaea !important; 2946 font-size: 15px !important; 2947 color: #222222 !important; 2948 font-weight: bold !important; 2949 cursor: pointer !important; 2950 -webkit-tap-highlight-color: transparent !important; 2951 } 2952 2953 /* 䏿æç¤ºå°ç®é â¼ */ 2954 .footer-links-column h4::after { 2955 content: 'â¼' !important; 2956 position: absolute !important; 2957 right: 10px !important; 2958 top: 50% !important; 2959 transform: translateY(-50%) scale(0.75) !important; 2960 font-size: 11px !important; 2961 color: #b51a63 !important; 2962 transition: transform 0.2s ease !important; 2963 } 2964 2965 /* å±éæçç®é â² */ 2966 .footer-links-column h4.is-expanded::after { 2967 transform: translateY(-50%) scale(0.75) rotate(180deg) !important; 2968 color: #333333 !important; 2969 } 2970 2971 /* æªéåæé±èé¸å®ï¼æ¶æ» ç©ºç½ */ 2972 .footer-links-column ul { 2973 display: none !important; 2974 max-height: 0px !important; 2975 overflow: hidden !important; 2976 opacity: 0 !important; 2977 margin: 0 !important; 2978 padding-left: 10px !important; 2979 } 2980 2981 .footer-links-column li { 2982 padding-top: 5px !important; 2983 padding-bottom: 5px !important; 2984 margin: 0 !important; 2985 } 2986} 2987</style> <!-- ========================================================================== 2988 ç´ç²¹ 3 æ¬å¼ç²¾æºéåæºæ §ç£è½è ³æ¬ 2989 ========================================================================== -->
2989<script type="text/javascript"> 2990document.addEventListener("DOMContentLoaded", function() { 2991 function initClean3ColumnAccordion() { 2992 if (window.innerWidth > 768) return; 2993 2994 // åªæå 3 åæåæ¸ å®æ¬ä½ 2995 var columns = document.querySelectorAll('.footer-links-column'); 2996 2997 columns.forEach(function(column) { 2998 var title = column.querySelector('h4'); 2999 var list = column.querySelector('ul'); 3000 3001 if (!title || !list) return; 3002 3003 title.removeEventListener('click', handleFooterToggle); 3004 title.addEventListener('click', handleFooterToggle); 3005 3006 function handleFooterToggle(e) { 3007 e.preventDefault(); 3008 e.stopPropagation(); 3009 3010 var isOpen = title.classList.contains('is-expanded'); 3011 3012 // 1. å ¨åéè¨ï¼å æ¶åææäººç空é 3013 columns.forEach(function(c) { 3014 var h = c.querySelector('h4'); 3015 var u = c.querySelector('ul'); 3016 if (h) h.classList.remove('is-expanded'); 3017 if (u) { 3018 u.style.maxHeight = "0px"; 3019 u.style.opacity = "0"; 3020 u.style.setProperty ? u.style.setProperty('display', 'none', 'important') : (u.style.display = 'none'); 3021 } 3022 }); 3023 3024 // 2. ç¨ç«éåé»é¸çéä¸çµ 3025 if (!isOpen) { 3026 title.classList.add('is-expanded'); 3027 list.style.setProperty ? list.style.setProperty('display', 'block', 'important') : (list.style.display = 'block'); 3028 list.style.maxHeight = "none"; 3029 list.style.opacity = "1"; 3030 list.style.paddingTop = "5px"; 3031 list.style.paddingBottom = "10px"; 3032 } 3033 } 3034 }); 3035 } 3036 3037 initClean3ColumnAccordion(); 3038 setTimeout(initClean3ColumnAccordion, 400); 3039}); 3040</script>
3040 </div> <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> <!--googleoff: index--><span style="display:none;">q6a5dd2e0d87d6</span><!--googleon: index--> </div> <div id="qdm-copy"><a href='https://www.iporkcut.com.tw/googlebase.xml' title="RSS" target='blank'><i class="fa fa-rss"></i></a><a href='https://www.iporkcut.com.tw/sitemap'>ç¶²ç«å°å</a></div> </div> </div> </footer> <!-- #footer -->
3040<script src="https://cdn.qdm.cloud/assets/js/LAB.min.js"></script>
3040
3040<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
3040
3040<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/1.4.1/jquery-migrate.min.js"></script>
3040
3040<script type="text/javascript"> 3041 3042 $(document).ready(function() { 3043 var j = 0; 3044 var delay = 3000; 3045 function cycleStickyBarTop(){ 3046 var jmax = $(".sticky-bar-top .sticky-bar-content").length -1; 3047 if(jmax > 0){ 3048 $(".sticky-bar-top .sticky-bar-content:eq(" + j + ")") 3049 .animate({"opacity" : "1","z-index":"9998"} ,400) 3050 .animate({"opacity" : "1","z-index":"9998"}, delay) 3051 .animate({"opacity" : "0","z-index":"9"}, 400, function(){ 3052 (j == jmax) ? j=0 : j++; 3053 cycleStickyBarTop(); 3054 }); 3055 }else{ 3056 $(".sticky-bar-top .sticky-bar-content:eq(" + j + ")") 3057 .animate({"opacity" : "1","z-index":"9998"}, delay) 3058 } 3059 }; 3060 cycleStickyBarTop(); 3061 3062 var i = 0; 3063 function cycleStickyBarBottom(){ 3064 var imax = $(".sticky-bar-bottom .sticky-bar-content").length -1; 3065 if(imax > 0){ 3066 $(".sticky-bar-bottom .sticky-bar-content:eq(" + i + ")") 3067 .animate({"opacity" : "1","z-index":"9998"} ,400) 3068 .animate({"opacity" : "1","z-index":"9998"}, delay) 3069 .animate({"opacity" : "0","z-index":"9"}, 400, function(){ 3070 (i == imax) ? i=0 : i++; 3071 cycleStickyBarBottom(); 3072 }); 3073 }else{ 3074 $(".sticky-bar-bottom .sticky-bar-content:eq(" + i + ")") 3075 .animate({"opacity" : "1","z-index":"9998"}, delay) 3076 } 3077 3078 }; 3079 cycleStickyBarBottom(); 3080 3081 var k = 0; 3082 function cycleStickyBarTopMobile(){ 3083 var kmax = $(".mobile-sticky-bar-top .sticky-bar-content").length -1; 3084 if(kmax > 0){ 3085 $(".mobile-sticky-bar-top .sticky-bar-content:eq(" + k + ")") 3086 .animate({"opacity" : "1","z-index":"9998"} ,400) 3087 .animate({"opacity" : "1","z-index":"9998"}, delay) 3088 .animate({"opacity" : "0","z-index":"9"}, 400, function(){ 3089 (k == kmax) ? k=0 : k++; 3090 cycleStickyBarTopMobile(); 3091 }); 3092 }else{ 3093 $(".mobile-sticky-bar-top .sticky-bar-content:eq(" + k + ")") 3094 .animate({"opacity" : "1","z-index":"9998"}, delay) 3095 } 3096 }; 3097 cycleStickyBarTopMobile(); 3098 3099 //COUNTDOWN TIMER 3100 $(".sticky-bar-countdown").each(function(){ 3101 3102 var sticky_bar_date = $(this).attr("data-countdown-date").replace(/-/g,'/'); 3103 var sticky_bar_countdown_id = $(this).attr("id"); 3104 var countDownDate = new Date(sticky_bar_date).getTime(); 3105 3106 var x = setInterval(function() { 3107 3108 var now = new Date().getTime(); 3109 3110 var distance = countDownDate - now; 3111 3112 var days = Math.floor(distance / (1000 * 60 * 60 * 24)); 3113 var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 3114 var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); 3115 var seconds = Math.floor((distance % (1000 * 60)) / 1000); 3116 3117 if(hours<10){ 3118 var hours1 = "0"+hours; 3119 }else{ 3120 var hours1 = hours; 3121 } 3122 if(minutes<10){ 3123 var minutes1 = "0"+minutes; 3124 }else{ 3125 var minutes1 = minutes; 3126 } 3127 if(seconds<10){ 3128 var seconds1 = "0"+seconds; 3129 }else{ 3130 var seconds1 = seconds; 3131 } 3132 3133 if( $("#" + sticky_bar_countdown_id).length ) { 3134 document.getElementById(sticky_bar_countdown_id).innerHTML = " "+days+ " DAY " + hours1 + ": " 3135 + minutes1 + ": " + seconds1 + " "; 3136 } 3137 3138 if (distance < 0) { 3139 clearInterval(x); 3140 //document.getElementById(sticky_bar_countdown_id).innerHTML = "-"; 3141 $("#"+sticky_bar_countdown_id).remove(); 3142 } 3143 }, 1000); 3144 3145 }); 3146 3147 }); 3148 3149 jQuery.ajaxPrefilter( function( s ) { 3150 if ( s.crossDomain ) { 3151 s.contents.script = false; 3152 } 3153 }); 3154 3155 var loc = window.location.href, index = loc.indexOf('#'); 3156 if (index > 0) { 3157 try { 3158 var urlHash = loc.split("#")[1]; 3159 if( urlHash ) { 3160 if( $('#' + urlHash).length ) { 3161 $('html,body').animate({ 3162 scrollTop: $('#' + urlHash).offset().top 3163 }, 1200); 3164 } else { 3165 window.location = loc.substring(0, index) + "&" + loc.substring(index+1); 3166 } 3167 } 3168 } catch(err) { } 3169 } 3170 3171 var readyInitPage = 1; 3172 var doAdjust = true; 3173 var doAdjustCounter = 0; 3174 var jsLoadTimeout = null; 3175 var previousWidth = 0; 3176 var maxHeight = 0; 3177 var flipper_random_status = 0; 3178 var float_banner_count = 0; 3179 var lazy = 1; 3180 var transInitial = -280; 3181 var mDistance = 0; 3182 3183 if (window!= top) top.location.href = location.href; 3184 3185 //20210713 add menu url target 3186 $(".pushy-submenu button span").click(function(){ 3187 if($(this).attr("target")){ 3188 $(this).removeClass("pushy-submenu-parent"); 3189 if($(this).parents("li").hasClass("pushy-submenu-open")){ 3190 window.open($(this).data("url"),"_blank"); 3191 } 3192 } 3193 }); 3194 3195 $(".pushy-menu-storename span").click(function(){ 3196 $("#myBody").removeClass("pushy-open-left"); 3197 }); 3198 3199 function getScript(url,success){ 3200 var script = document.createElement('script'); 3201 script.type = 'text/javascript'; 3202 script.src = url; 3203 var head=document.getElementsByTagName('head')[0], done=false; 3204 script.onload=script.onreadystatechange = function(){ 3205 if ( !done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete') ) { 3206 done=true; 3207 success(); 3208 script.onload = script.onreadystatechange = null; 3209 head.removeChild(script); 3210 } 3211 }; 3212 head.appendChild(script); 3213 } 3214 3215 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{}} 3216 3217 function adjustBoxHeights() { 3218 maxHeight1 = 270; 3219 maxHeight2 = 270; 3220 maxHeight3 = 270; 3221 maxHeight4 = 270; 3222 maxHeight5 = 270; 3223 3224 $('.content-top .product-box > div').each(function(){ 3225 $(this).height('auto'); 3226 if (maxHeight2 < $(this).height()) { maxHeight2 = $(this).height(); } 3227 }); 3228 $('.content-top .product-box > div').each(function(){ 3229 if( maxHeight2 ) { 3230 $(this).height(maxHeight2); 3231 } 3232 }); 3233 3234 $('.content-bottom .product-box > div').each(function(){ 3235 $(this).height('auto'); 3236 if (maxHeight3 < $(this).height()) { maxHeight3 = $(this).height(); } 3237 }); 3238 $('.content-bottom .product-box > div').each(function(){ 3239 if( maxHeight3 ) { 3240 $(this).height(maxHeight3); 3241 } 3242 }); 3243 3244 $('.product-grid > div').each(function(){ 3245 var img_src = $(this).find(".image img[src]").attr("src"); 3246 try { 3247 var img_src_ext = img_src.split('.').pop().toLowerCase(); 3248 } catch(err) { 3249 img_src_ext = ""; 3250 } 3251 $(this).height('auto'); 3252 if( $( "#myBody" ).hasClass("product-category") ){ 3253 img_src_ext = ""; 3254 } 3255 if( img_src_ext != "gif" ) { 3256 if (maxHeight1 < $(this).height()) { maxHeight1 = $(this).height(); } 3257 } else { 3258 $(this).addClass("gif-tag"); 3259 } 3260 }); 3261 var img_gif_height = 0; 3262 $('.product-grid > div').each(function(){ 3263 var img_src = $(this).find(".image img[src]").attr("src"); 3264 try { 3265 var img_src_ext = img_src.split('.').pop().toLowerCase(); 3266 } catch(err) { 3267 img_src_ext = ""; 3268 } 3269 if( maxHeight1 ){ 3270 $(this).height(maxHeight1); 3271 if( img_src_ext != "gif" ) { 3272 img_gif_height = $(this).find(".image img").height(); 3273 } 3274 } 3275 }); 3276 $('.product-grid > div.gif-tag').attr("style",""); 3277 if( img_gif_height ) { 3278 $('.product-grid > div.gif-tag').find(".image img").attr("style","height:" + img_gif_height + "px;width:auto;"); 3279 } 3280 3281 $('.box-content').each(function(index,elmain){ 3282 $(elmain).find('.product-box').each(function(index,el){ 3283 maxHeight1 = 0; 3284 $(el).find('.grid-box').each(function(index,el2){ 3285 $(el2).height('auto'); 3286 }); 3287 $(el).find('.grid-box .inner').each(function(index,el2){ 3288 if (maxHeight1 < $(el2).height()) { maxHeight1 = $(el2).height(); } 3289 }); 3290 maxHeight1 = maxHeight1 + 18; 3291 $(el).find('.grid-box').each(function(index,el2){ 3292 if( maxHeight1 ) { 3293 $(el2).height(maxHeight1); 3294 } 3295 }); 3296 }); 3297 }); 3298 3299 $('#related-products').each(function(index,elmain){ 3300 $(elmain).imagesLoaded(function(){ 3301 $(this).find('.product-box').each(function(index,el){ 3302 maxHeight1 = 0; 3303 $(el).find('.grid-box').each(function(index,el2){ 3304 $(el2).height('auto'); 3305 }); 3306 $(el).find('.grid-box .inner').each(function(index,el2){ 3307 if (maxHeight1 < $(el2).height()) { maxHeight1 = $(el2).height(); } 3308 }); 3309 maxHeight1 = maxHeight1 + 36; 3310 if( maxHeight1 < 220 ) maxHeight1 = 220; 3311 if( !is.mobile() ) { 3312 if( maxHeight1 < 340 ) maxHeight1 = 340; 3313 } 3314 $(el).find('.grid-box').each(function(index,el2){ 3315 if( maxHeight1 ) { 3316 $(el2).height(maxHeight1); 3317 } 3318 }); 3319 }); 3320 }); 3321 }); 3322 3323 $('.content-bottom #related-products').each(function(index,elmain){ 3324 var contentset_height = parseInt($('.content-bottom #related-products .contentset').height()); 3325 if( contentset_height ) contentset_height = contentset_height + 70; 3326 $(elmain).imagesLoaded(function(){ 3327 $(this).find('.product-box').each(function(index,el){ 3328 maxHeight1 = 0; 3329 $(el).find('.grid-box').each(function(index,el2){ 3330 $(el2).height('auto'); 3331 }); 3332 $(el).find('.grid-box .inner').each(function(index,el2){ 3333 if (maxHeight1 < $(el2).height()) { maxHeight1 = $(el2).height(); } 3334 }); 3335 maxHeight1 = maxHeight1 + 36 + contentset_height; 3336 if( maxHeight1 < 220 ) maxHeight1 = 220; 3337 if( !is.mobile() ) { 3338 if( maxHeight1 < 340 ) maxHeight1 = 340; 3339 } 3340 $(el).find('.grid-box').each(function(index,el2){ 3341 if( maxHeight1 ) { 3342 $(el2).height(maxHeight1); 3343 } 3344 }); 3345 }); 3346 }); 3347 }); 3348 3349 $('.any-products').each(function(index,el){ 3350 3351 if(is.mobile()){ 3352 $(el).find(".grid-box").attr("style",""); 3353 } 3354 3355 maxHeight5 = 0; 3356 $(el).find('.any-box > div').each(function(index,el2){ 3357 $(el2).height('auto'); 3358 if (maxHeight5 < $(el2).height()) { maxHeight5 = $(el2).height(); } 3359 }); 3360 $(el).find('.any-box > div').each(function(index,el2){ 3361 if( maxHeight5 ) { 3362 $(el2).height(maxHeight5); 3363 } 3364 }); 3365 $(el).find('.grid-box > .inner').each(function(index,el2){ 3366 $(el2).css("display", "block"); 3367 }); 3368 }); 3369 } 3370
3371 var supportsNatural = ( "naturalWidth" in (new Image()) ); 3372 3373 function initDeferImages() { 3374 [].forEach.call(document.querySelectorAll('img[data-src]'), function(img) { 3375 img.setAttribute('src', img.getAttribute('data-src')); 3376 img.onload = function() { 3377 this.removeAttribute('data-src'); 3378 if (this.style.opacity !== undefined) { 3379 this.style.opacity = 1; 3380 } 3381 var naturalWidth = supportsNatural ? this.naturalWidth : $(this).width(); 3382 if( naturalWidth == 0 ) { 3383 this.src += '?timestamp=' + new Date().getTime(); 3384 } 3385 }; 3386 }); 3387 $(".grid-box img,.product-row img").each(function(){ 3388 var _this = $(this); 3389 _this.imagesLoaded(function(){ 3390 _this.animate({opacity: 1.0}, 100); 3391 _this.closest('.grid-box').find('.onsale').removeClass("hidden"); 3392 _this.closest('.grid-box').find('.name').removeClass("hidden"); 3393 _this.closest('.grid-box').find('.price').removeClass("hidden"); 3394 _this.closest('.grid-box').find('.label-important').removeClass("hidden"); 3395 _this.closest('.grid-box').find('.load-thumb-conver').remove(); 3396 _this.closest('.product-row').find('.load-thumb-conver').remove(); 3397 try { 3398 if (typeof _this.data('flipper') !== 'undefined') { 3399 _this.flipper(); 3400 } 3401 } catch(err) { } 3402 _this.height('auto'); 3403 if( (lazy == $(".grid-box img").length) ) { adjustBoxHeights(); } 3404 lazy++; 3405 }); 3406 }); 3407 } 3408 3409 function updateCartProductCount() { 3410 $.get("index.php?route=module/cart/GetProductTotal", function(data) { 3411 $("#shopping-cart-list .badge").html(data); 3412 if(data>0){ 3413 $("#shopping-cart-list .badge").removeClass("hidden"); 3414 $("#shopping-cart-list .badge").removeClass("animated"); 3415 $("#shopping-cart-list .badge").addClass("animated bounce"); 3416 } else { 3417 $("#shopping-cart-list .badge").addClass("hidden"); 3418 } 3419 }); 3420 } 3421 3422 function updateQuantityByProductKey(key, quantity) { 3423 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 3424 $.ajax({ 3425 url: 'index.php?route=checkout/cart/updateProductQuantity', 3426 type: 'post', 3427 data: { 'quantity':quantity, 'key': key }, 3428 dataType: 'json', 3429 success: function(json) { 3430 $.get( "index.php?route=module/cart/list", function( data ) { 3431 $(".slidePanel .slidePanel-content").html(data); 3432 updateCartProductCount(); 3433 }); 3434 } 3435 }); 3436 } 3437 3438 function removeProductFromSideCart(key, idx) { 3439 //var newkey = encodeURIComponent(key); 3440 var newkey = key; 3441 $.get("index.php?route=module/cart&remove=" + newkey, function(data) { 3442 $.get( "index.php?route=module/cart/list", function( data ) { 3443 $(".slidePanel .slidePanel-content").html(data); 3444 updateCartProductCount(); 3445 }); 3446 }); 3447 $("#producr-list-" + idx).fadeOut(1200, function() { $(this).remove(); }); 3448 return false; 3449 } 3450 3451 function openSideCart(ta_product_id){ 3452 var slidePanelVisible = $(".slidePanel").hasClass("slidePanel-show"); 3453 if( slidePanelVisible ) { 3454 $("#content-wrapper").off("click"); 3455 $.slidePanel.hide(); 3456 } else { 3457 updateCartProductCount(); 3458 $.slidePanel.show({ 3459 url: 'index.php?route=module/cart/list' 3460 }, { 3461 direction: "left", 3462 duration: '500', 3463 mouseDrag: false, 3464 touchDrag: false, 3465 pointerDrag: false, 3466 loading: { 3467 template: function(options) { 3468 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>'; 3469 } 3470 } 3471 }); 3472 $("#content-wrapper").on('click', function(event) { 3473 $("#content-wrapper").off("click"); 3474 $.slidePanel.hide(); 3475 event.preventDefault(); 3476 event.stopPropagation(); 3477 3478 var t_url = location.href; 3479 var c_url = "https://www.iporkcut.com.tw/cart"; 3480 3481 if(t_url == c_url){ 3482 location.reload(); 3483 } 3484 3485 }); 3486 $(".fancybox-product").on('click', function(event) { 3487 $.slidePanel.hide(); 3488 event.preventDefault(); 3489 event.stopPropagation(); 3490 3491 var t_url = location.href; 3492 var c_url = "https://www.iporkcut.com.tw/cart"; 3493 3494 if(t_url == c_url){ 3495 location.reload(); 3496 } 3497 3498 }); 3499 } 3500 } 3501 3502 function gaTrackAddToCart(page, product_ids) { 3503 3504 product_ids.forEach(function(item){ 3505 3506 try { 3507 3508 // UA 3509 dataLayer.push({ 3510 'event': 'addToCart', 3511 'ecommerce': { 3512 'currencyCode': '', 3513 'add': { 3514 'products': [{ 3515 'name': item.p_name, 3516 'id': item.p_id, 3517 'price': item.p_prices, 3518 'quantity': item.p_qty 3519 }] 3520 } 3521 } 3522 }); 3523 3524 // GA4 3525 dataLayer.push({ 3526 'event': 'add_to_cart', 3527 'ecommerce': { 3528 'items': [{ 3529 'item_name': item.p_name, 3530 'item_id': item.p_id, 3531 'price': item.p_prices, 3532 'quantity': item.p_qty 3533 }] 3534 } 3535 }); 3536 3537 3538 3539 } catch (e) { } 3540 3541 }); 3542 3543 } 3544
3545 // Defers instant-add until the async-loaded $.fancybox exists, so early 3546 // clicks no longer hit an undefined open() and feel dead. One poller at a 3547 // time, latest click wins - repeated clicks don't stack duplicate opens. 3548 // Keep in sync with common/footer_cart.tpl (same guard for '/cart' URLs). 3549 var _fancyboxPendingCb = null; 3550 var _fancyboxPolling = false; 3551 function whenFancyboxReady(callback){ 3552 if (typeof $.fancybox !== 'undefined') { callback(); return; } 3553 _fancyboxPendingCb = callback; // latest click wins if several arrive while waiting 3554 if (_fancyboxPolling) { return; } 3555 _fancyboxPolling = true; 3556 (function poll(attempt){ 3557 if (typeof $.fancybox !== 'undefined') { 3558 _fancyboxPolling = false; 3559 var cb = _fancyboxPendingCb; 3560 _fancyboxPendingCb = null; 3561 if (cb) { cb(); } 3562 return; 3563 } 3564 if (attempt < 50) { setTimeout(function(){ poll(attempt + 1); }, 100); return; } 3565 _fancyboxPolling = false; 3566 _fancyboxPendingCb = null; 3567 if (window.console && console.warn) { console.warn('fancybox not ready after 5s; instant add aborted'); } 3568 })(0); 3569 } 3570 3571 function InstantAddToCart(product_id, quantity, promotion_id, free_present_id){ 3572 3573 if( product_id && quantity ) { 3574 3575 gecommProductToCart.product_id = product_id; 3576 gecommProductToCart.quantity = quantity; 3577 3578 try { 3579 3580 var p_name = $("[data-producttlid='"+product_id+"'] .name [itemprop='name']").html(); 3581 var p_prices = $("[data-producttlid='"+product_id+"'] .price[data-price]").data("price"); 3582 gecommProductToCart.product_name = p_name; 3583 3584 gecommProductToCart.price = p_prices; 3585 3586 // UA 3587 dataLayer.push({ 3588 'event': 'addToCart', 3589 'ecommerce': { 3590 'currencyCode': '', 3591 'add': { 3592 'products': [{ 3593 'name': p_name, 3594 'id': product_id, 3595 'price': p_prices, 3596 'quantity': quantity 3597 }] 3598 } 3599 } 3600 }); 3601 3602 // GA4 3603 dataLayer.push({ 3604 'event': 'add_to_cart', 3605 'ecommerce': { 3606 'items': [{ 3607 'item_name': p_name, 3608 'item_id': product_id, 3609 'price': p_prices, 3610 'quantity': quantity 3611 }] 3612 } 3613 }); 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 } catch (e) { } 3624 3625 } 3626 3627 $('[data-toggle="tooltip"], .tooltip').tooltip("hide"); 3628 3629 promotion_id = typeof(promotion_id) != 'undefined' ? promotion_id : -1; 3630 free_present_id = typeof(free_present_id) != 'undefined' ? free_present_id : -1; 3631 3632 if(free_present_id != "-1"){ 3633 quantity = $('input[name="quantity"]').val(); 3634 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 3635 } 3636 3637 var price = $('#price-price-block .price-normal').attr('data-content'); 3638 3639 if(typeof(price) === 'undefined') price = $('#price-price-block .price-new').attr('data-content'); 3640 3641 price = typeof(price) != 'undefined' ? price : 0; 3642 3643 var instantCartSrc = 'https://www.iporkcut.com.tw/index.php?route=product/instant_add&product_id=' + product_id + '&promotion_id=' + promotion_id + '&quantity=' + quantity +'&price=' + price + '&free_present_id=' + free_present_id; 3644 3645 whenFancyboxReady(function(){ 3646 try { 3647 $.fancybox.open({ 3648 src : instantCartSrc, 3649 type : 'iframe', 3650 opts : { 3651 openEffect : 'none', 3652 closeEffect : 'none', 3653 closeClickOutside : true, 3654 iframe : { css : { "max-width" : '332px', "width:": '100%' } }, 3655 beforeLoad: function() { 3656 $(".fancybox-container").css("zIndex", 999999993); 3657 } 3658 } 3659 }); 3660 } catch (e) { } 3661 }); 3662 } 3663 3664 function InstantAddToCart1(product_id, quantity, key_id, type, position){ 3665 3666 product_id = (typeof product_id !== 'undefined') ? product_id : 0; 3667 quantity = (typeof quantity !== 'undefined') ? quantity : 1; 3668 key_id = (typeof key_id !== 'undefined') ? key_id : "-1"; 3669 type = (typeof type !== 'undefined') ? type : ""; 3670 position = (typeof position !== 'undefined') ? position : ""; 3671 3672 if( product_id && quantity ) { 3673 3674 gecommProductToCart.product_id = product_id; 3675 gecommProductToCart.quantity = quantity; 3676 3677 try { 3678 3679 var p_name = $("[data-producttlid='"+product_id+"'] .name [itemprop='name']").html(); 3680 var p_prices = $("[data-producttlid='"+product_id+"'] .price[data-price]").data("price"); 3681 gecommProductToCart.product_name = p_name; 3682 3683 gecommProductToCart.price = p_prices; 3684 3685 // UA 3686 dataLayer.push({ 3687 'event': 'addToCart', 3688 'ecommerce': { 3689 'currencyCode': '', 3690 'add': { 3691 'products': [{ 3692 'name': p_name, 3693 'id': product_id, 3694 'price': p_prices, 3695 'quantity': quantity 3696 }] 3697 } 3698 } 3699 }); 3700 3701 // GA4 3702 dataLayer.push({ 3703 'event': 'add_to_cart', 3704 'ecommerce': { 3705 'items': [{ 3706 'item_name': p_name, 3707 'item_id': product_id, 3708 'price': p_prices, 3709 'quantity': quantity 3710 }] 3711 } 3712 }); 3713 3714 3715 3716 3717 3718 3719 3720 } catch (e) { } 3721 3722 } 3723 3724 $('[data-toggle="tooltip"], .tooltip').tooltip("hide"); 3725 3726 if(type == "promotion"){ 3727 var promotion_id = typeof(key_id) != 'undefined' ? key_id : -1; 3728 var send_value = '&promotion_id=' + promotion_id ; 3729 } 3730 3731 if(type == "present"){ 3732 var free_present_id = typeof(key_id) != 'undefined' ? key_id : -1; 3733 3734 //if(free_present_id > 0){ 3735 quantity = $('input[name="quantity"]').val(); 3736 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 3737 //} 3738 3739 var send_value = '&free_present_id=' + free_present_id +'&position=' + position; 3740 } 3741 3742 if(type == "buytogether"){ 3743 var buy_together_id = typeof(key_id) != 'undefined' ? key_id : -1; 3744 3745 quantity = $('input[name="quantity"]').val(); 3746 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 3747 3748 var send_value = '&buy_together_id=' + buy_together_id +'&position=' + position; 3749 } 3750 3751 var price = $('#price-price-block .price-normal').attr('data-content'); 3752 3753 if(typeof(price) === 'undefined') price = $('#price-price-block .price-new').attr('data-content'); 3754 3755 price = typeof(price) != 'undefined' ? price : 0; 3756 3757 3758 var instantCart1Src = 'index.php?route=product/instant_add&product_id=' + product_id + '&quantity=' + quantity +'&price=' + price +send_value ; 3759 3760 whenFancyboxReady(function(){ 3761 try { 3762 $.fancybox.open({ 3763 src : instantCart1Src, 3764 type : 'iframe', 3765 opts : { 3766 closeClickOutside : true, 3767 iframe : { css : { width : '320px' } }, 3768 beforeLoad: function() { 3769 $(".fancybox-container").css("zIndex", 999999993); 3770 } 3771 } 3772 }); 3773 } catch (e) { } 3774 }); 3775 } 3776 3777 // Debounced mini-cart reload: every module/cart hit rewrites server-side 3778 // cart state, so a burst of reloads can undo a just-added product. 3779 // Keep in sync with common/footer_cart.tpl -- only one footer renders per page 3780 // (common/footer.php picks a single template), so the two copies never collide. 3781 var miniCartReloadTimer = null; 3782 function reloadMiniCart(immediate){ 3783 // One shared timer for every caller; immediate only shortens the wait. 3784 // Bypassing it made add-to-cart fire two overlapping module/cart requests
3785 // (closePopFancybox() and TriggerMyCartList() each trigger mouseover). 3786 // Rescheduling is not a lock, so this is "almost always one", not a guarantee. 3787 clearTimeout(miniCartReloadTimer); 3788 miniCartReloadTimer = setTimeout(loadMiniCart, immediate ? 0 : 300); 3789 } 3790 3791 function loadMiniCart(){ 3792 $("#cart").load("index.php?route=module/cart #cart > *", function(){ 3793 try { refreshMiniCartScrollBar(); } catch (e) { } 3794 }); 3795 } 3796 3797 function closePopFancybox(){ 3798 try { 3799 $.fancybox.close(); 3800 $.fancybox.destroy(); 3801 } catch (e) { } 3802 if( is.desktop() ) { 3803 setTimeout(function(){ 3804 $("#cart > .heading a").trigger('mouseover'); 3805 setTimeout(function(){ refreshMiniCartScrollBar(); }, 300); 3806 }, 500); 3807 } 3808 } 3809 3810 function LastPresentsOption(html,key,qty){ 3811 $("#lg_option_"+key).prepend(html); 3812 $('.last_free_presents').trigger('change'); 3813 $('.free_present_qty').trigger('change'); 3814 } 3815 3816 function TriggerMyCartList(){ 3817 if( is.not.desktop() ){ 3818 updateCartProductCount(); 3819 setTimeout(function(){ 3820 $("#shopping-cart-list .badge").removeClass("animated"); 3821 $("#shopping-cart-list .badge").addClass("animated"); 3822 $("#shopping-cart-list .badge").addClass("bounce"); 3823 }, 800); 3824 } else { 3825 setTimeout(function(){ 3826 $("#cart > .heading a").trigger('mouseover'); 3827 setTimeout(function(){ refreshMiniCartScrollBar(); }, 300); 3828 }, 500); 3829 } 3830 } 3831 3832 function removeCartByProductID(product_id) { 3833 if( is.existy(product_id) ) { 3834 $.ajax({ 3835 url: 'index.php?route=module/cart&remove=' + product_id + "%3Anull%3A-1%3A0", 3836 type: 'post', 3837 dataType: 'json', 3838 success: function(json) { 3839 TriggerMyCartList(); 3840 } 3841 }); 3842 } 3843 } 3844 3845 function updateQuantityByProductID(product_id, quantity) { 3846 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 3847 $.ajax({ 3848 url: 'index.php?route=checkout/cart/updateProductQuantity', 3849 type: 'post', 3850 data: { 'quantity':quantity, 'key': product_id+'%3Anull%3A-1%3A0' }, 3851 dataType: 'json', 3852 success: function(json) { 3853 TriggerMyCartList(); 3854 } 3855 }); 3856 } 3857 3858 3859 function bulk_add_to_cart() { 3860 $("select.bulk-add-quantity").change(function() { 3861 var value = $("option:selected", this).val(); 3862 var select_idx = $(this).data("idx"); 3863 var product_id = $(this).data("productid"); 3864 var prevval = $(this).data("prevval"); 3865 3866 if( value == 0 ) { 3867 $(this).next(".bulk-add-quantity").addClass("no-cart"); 3868 if(prevval!=0){ 3869 removeCartByProductID(product_id); 3870 } 3871 } else { 3872 $(this).next(".bulk-add-quantity").removeClass("no-cart"); 3873 3874 if( value == 999 ) { 3875 InstantAddToCart(product_id, 999); 3876 $(this).next(".bulk-add-quantity").find(".current").text("+ 9"); 3877 } else { 3878 if(prevval==0){ 3879 // ç¬¬ä¸æ¬¡å å ¥ 3880 InstantAddToCart(product_id, value); 3881 } else { 3882 // æ´æ°æ¸é 3883 updateQuantityByProductID(product_id, value); 3884 } 3885 } 3886 } 3887 $(this).data("prevval", value); 3888 $(this).attr("data-prevval", value); 3889 }); 3890 } 3891 3892 function downloadJSAtOnload() { 3893 3894 $("#myBody").removeAttr('style'); 3895 3896 if( is.not.desktop() ) { 3897 $('.any-products').each(function(index,el){ 3898 $(el).find('.grid-box').each(function(index,el2){ 3899 $(el2).attr('style',''); 3900 }); 3901 }); 3902 } 3903 3904 try { 3905 getScript("https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js",function(){ }); 3906 } catch(e) { } 3907 3908 3909 var queue = $LAB.queueScript("https://cdn.qdm.cloud/assets/js/core.240901.compressed.js"); 3910 queue.queueWait(function(){ 3911 3912 // core.js reloads module/cart on EVERY mini-cart hover, unthrottled (10 3913 // requests in 5s observed). Rebind to the debounced reload, keeping 3914 // hover-to-expand behaviour. The mouseleave rebind is like-for-like: in 3915 // core.240901 (the bundle queued above) its body is only 3916 // removeClass("active"). Re-check if that bundle is rebuilt. 3917 // Keep in sync with common/footer_cart.tpl -- it queues a different 3918 // bundle, so verify that claim against ITS bundle. 3919 // 3920 // The ready() wrapper is load-bearing: core.js binds inside its own 3921 // ready() callback, registered while this queued script runs, and jQuery 3922 // fires ready callbacks in registration order -- so off() is guaranteed to 3923 // run after that bind. Calling off() directly here only works if DOM ready 3924 // happens to have fired already; otherwise it removes nothing and BOTH 3925 // handlers stay attached.
3926 $(document).ready(function(){ 3927 try { 3928 $(document).off("mouseover", "#cart > .heading"); 3929 $(document).on("mouseover", "#cart > .heading", function(e){ 3930 $("#cart").addClass("active"); 3931 // Programmatic refreshes get here via .trigger('mouseover') (add-to-cart / 3932 // fancybox close / login). Debouncing them delayed the reload past each 3933 // call site's paired setTimeout(refreshMiniCartScrollBar, 300). jQuery 3934 // marks synthetic events with isTrigger; losing that just falls back to 3935 // the debounced path. 3936 reloadMiniCart(e && e.isTrigger); 3937 }); 3938 $(document).off("mouseleave", "#cart"); 3939 $(document).on("mouseleave", "#cart", function(){ 3940 $(this).removeClass("active"); 3941 }); 3942 } catch (e) { 3943 // Never break the rest of the queued callback, but do not fail 3944 // silently either -- a swallowed error degrades straight back to 3945 // the unthrottled reload. 3946 if (window.console && console.warn) { console.warn("mini-cart rebind failed", e); } 3947 } 3948 3949 // Self-check. off(type, selector) matches on the selector STRING, so a whitespace 3950 // variant alone breaks it: a rebuilt bundle emitting "#cart>.heading" survives our 3951 // off() and BOTH handlers stay attached. Both spellings hit the same element, so 3952 // compare with whitespace stripped -- that covers drift on either side. 3953 // Known limit: whitespace is the ONLY rewrite covered. "#cart .heading", a trailing 3954 // " a", a comma-separated selector or a direct element bind all stay silent. 3955 // A tripwire for the likely case, not proof that the rebind held. 3956 // _data is a jQuery internal, so it gets its own try/catch: if it ever goes away, 3957 // the rebind above is still correct and must not be reported failed. 3958 try { 3959 var miniCartEvents = $._data(document, "events"); 3960 var miniCartBound = ((miniCartEvents && miniCartEvents.mouseover) || []).filter(function(h){ 3961 return h.selector && h.selector.replace(/\s+/g, "") === "#cart>.heading"; 3962 }).length; 3963 if (miniCartBound !== 1 && window.console && console.warn) { 3964 console.warn("mini-cart rebind: expected 1 mouseover handler, found", miniCartBound); 3965 } 3966 } catch (e2) { 3967 if (window.console && console.warn) { console.warn("mini-cart rebind self-check unavailable", e2); } 3968 } 3969 }); 3970 3971 3972 3973 $(".ajax-popup-link").unbind(); 3974 $(".ajax-popup-link").fancybox({ 3975 closeBtn : true, 3976 closeClick : true, 3977 helpers : { 3978 overlay : {closeClick: true} 3979 }, 3980 buttons : [ 'close' ], 3981 clickOutside : 'close', 3982 closeClick : true, 3983 toolbar : true 3984 }); 3985 3986 3987 var milliseconds = new Date().getTime(); 3988 $.getJSON( "index.php?route=common/header/getLoggedInUserInfo&token=" + milliseconds + "1" + (Math.floor(Math.random() * 999) + 100), function( data ) { 3989 if( is.existy(data) && data.isLogged ) { 3990 $("#header-logged-user").html(data.logged_user_name + data.logged_group_name); 3991 $("#header-mobile-user").html(data.logged_user_name + data.logged_group_name); 3992 $(".header-logged-menu").removeClass("hidden"); 3993 $("#header-logged-menu").removeClass("hidden"); 3994 $("#header-none-logged-menu").remove(); 3995 } else { 3996 $(".header-logged-menu").remove(); 3997 $("#header-logged-menu").remove(); 3998 $(".header-none-logged-menu").removeClass("hidden"); 3999 $("#header-none-logged-menu").removeClass("hidden"); 4000 } 4001 4002 if( is.not.desktop() ){ 4003 updateCartProductCount(); 4004 setTimeout(function(){ 4005 $("#shopping-cart-list .badge").removeClass("animated"); 4006 $("#shopping-cart-list .badge").addClass("animated"); 4007 $("#shopping-cart-list .badge").addClass("bounce"); 4008 }, 800); 4009 } else { 4010 $("#cart > .heading a").trigger('mouseover'); 4011 $("section#cart").removeClass("active"); 4012 setTimeout(function(){ $("section#cart").removeClass("active"); }, 50); 4013 } 4014 4015 }); 4016 4017 setTimeout(function(){ 4018 $('.side_float_banner_wrapper').attr("style",""); 4019 $('.banner').each(function( index ) { 4020 if( $(this).find("a").length == 1 ) { 4021 $(this).attr("style",""); 4022 } 4023 }); 4024 }, 2000); 4025 4026 if (typeof init_inline === 'function') { 4027 if($("#image-additional").length){ 4028 $.fancybox.defaults.hash = false;
4029 } 4030 setTimeout(function(){ init_inline(); }, 300); 4031 } 4032 4033 if (typeof init_fullslideshow === 'function') { init_fullslideshow(); } 4034 4035 $("#contact-block").removeAttr('style'); 4036 4037 if( is.not.desktop() ) { 4038 $('#shopping-cart-list').on('click', function() { 4039 openSideCart(); 4040 return false; 4041 }); 4042 } 4043 4044 if ( $("input[name='quantity']").length > 0 ) { 4045 var qtyMin = $("input[name='quantity']").data("min"); 4046 if(qtyMin=="" || qtyMin==undefined) qtyMin = 1; 4047 $("input[name='quantity']").TouchSpin({ 4048 min: qtyMin, 4049 max: 99999 4050 }); 4051 } 4052 4053 $(window).resize(function() { 4054 if( $(window).width() < 992 ){ 4055 $("#footer-inner-row").removeClass("offset2"); 4056 } else { 4057 var data_count = $("#footer-inner-row").data("count"); 4058 if(data_count < 1) { 4059 $("#footer-inner-row").addClass("offset2"); 4060 } 4061 } 4062 }); 4063 4064 $("#header .flipper").each(function(){ 4065 var imgLoad = $(this).imagesLoaded(function(){ 4066 try { 4067 if (typeof $(this).data('flipper') !== 'undefined') { 4068 $(this).flipper(); 4069 } 4070 } catch(err) { } 4071 }); 4072 }); 4073 4074 $('a[href*="#"]').each(function() { 4075 var hash = $(this).attr('href'); 4076 if(hash=="##") return; 4077 if(hash=="#") return; 4078 if(hash=="#mobile-menu") return; 4079 $(this).click( function(e) { 4080 var url = $(this).attr('href'); 4081 var type = url.split('#'); 4082 var hash = ''; 4083 if(type.length > 1) 4084 hash = type[1]; 4085 if($("[name='"+hash+"']").length){ 4086 if(hash && hash != "undefined" && hash != null && hash != undefined){ 4087 e.preventDefault(); 4088 $('html,body').animate({ scrollTop: $("[name='"+hash+"']").offset().top}, 600); 4089 return false; 4090 } 4091 } 4092 }); 4093 }); 4094 4095 4096 4097 4098 4099 if ( $(".masonry").length > 0 ) { 4100 $(".masonry").each(function(index, value) { 4101 var $grid = $('.masonry').masonry(); 4102 setTimeout(function(){ $grid.masonry('layout'); }, 2000); 4103 }); 4104 } 4105 4106 if ( $(".owl-carousel").length > 0 ) { 4107 $(".owl-carousel").not('[data-exclude]').each(function(index, value) { 4108 4109 var autoplay = is.null( $(this).attr('data-autoPlay') ) ? true : $(this).attr('data-autoPlay'); 4110 var pagination = is.null( $(this).attr('data-pagination') ) ? false : $(this).attr('data-pagination'); 4111 var slideSpeed = is.null( $(this).attr('data-slideSpeed') ) ? 200 : $(this).attr('data-slideSpeed'); 4112 var paginationSpeed = is.null( $(this).attr('data-paginationSpeed') ) ? 800 : $(this).attr('data-paginationSpeed'); 4113 var singleItem = is.null( $(this).attr('data-singleItem') ) ? true : $(this).attr('data-singleItem'); 4114 var transitionStyle = is.null( $(this).attr('data-transitionStyle') ) ? "fade" : $(this).attr('data-transitionStyle'); 4115 4116 $(this).owlCarousel({ 4117 autoPlay : Boolean(autoplay), 4118 navigation : false, 4119 pagination : Boolean(pagination), 4120 slideSpeed : slideSpeed, 4121 paginationSpeed : paginationSpeed, 4122 singleItem: Boolean(singleItem), 4123 transitionStyle : transitionStyle, 4124 stopOnHover: true, 4125 autoHeight: true 4126 }); 4127 4128 }); 4129 } 4130 4131 4132 var vidDefer = document.getElementsByTagName('iframe'); 4133 for (var i=0; i<vidDefer.length; i++) { 4134 if(vidDefer[i].getAttribute('data-src')) { 4135 vidDefer[i].setAttribute('src',vidDefer[i].getAttribute('data-src')); 4136 } 4137 } 4138 4139 $(".fancybox").fancybox({ 4140 closeBtn: false, 4141 padding : 1, 4142 helpers : { 4143 overlay : { 4144 closeClick : true, 4145 speedOut : 200, 4146 showEarly : true, 4147 css : {}, 4148 locked : true 4149 }, 4150 title : { type : 'inside' }, 4151 buttons : {} 4152 } 4153 }); 4154 4155 4156 if( is.not.desktop() ){ 4157 $("#footer-inner-row").removeClass("offset2"); 4158 } 4159 4160 if ( $('#bestseller-products .flexslider').length > 0 ) { 4161 $('#bestseller-products .flexslider').each(function(index, value) { 4162 $(this).flexslider({ 4163 animation: "slide", 4164 animationLoop: true, 4165 itemWidth: 182, 4166 itemMargin: 3, 4167 minItems: 2, 4168 maxItems: 6, 4169 animationSpeed: 700, 4170 touch: true, 4171 slideshow: false, slideshowSpeed: 5000 }); 4172 }); 4173 } 4174 if ( $('#featured-products .flexslider').length > 0 ) { 4175 $('#featured-products .flexslider').each(function(index, value) { 4176 $(this).flexslider({ 4177 animation: "slide", 4178 animationLoop: true, 4179 itemWidth: 182, 4180 itemMargin: 3, 4181 minItems: 2, 4182 maxItems: 6, 4183 animationSpeed: 700, 4184 touch: true, 4185 slideshow: false, slideshowSpeed: 5000 }); 4186 }); 4187 } 4188 if ( $('#latest-products .flexslider').length > 0 ) { 4189 $('#latest-products .flexslider').each(function(index, value) { 4190 $(this).flexslider({ 4191 animation: "slide", 4192 animationLoop: true, 4193 itemWidth: 182, 4194 itemMargin: 3, 4195 minItems: 2, 4196 maxItems: 6, 4197 animationSpeed: 700, 4198 touch: true, 4199 slideshow: false, slideshowSpeed: 5000 }); 4200 }); 4201 } 4202 if ( $('#related-products .flexslider').length > 0 ) { 4203 $('#related-products .flexslider').each(function(index, value) { 4204 $(this).flexslider({ 4205 animation: "slide", 4206 animationLoop: true, 4207 itemWidth: 182, 4208 itemMargin: 3, 4209 minItems: 2, 4210 maxItems: 6, 4211 animationSpeed: 700, 4212 touch: true, 4213 slideshow: false, slideshowSpeed: 5000 }); 4214 }); 4215 } 4216 if ( $('#special-products .flexslider').length > 0 ) { 4217 $('#special-products .flexslider').each(function(index, value) { 4218 $(this).flexslider({ 4219 animation: "slide", 4220 animationLoop: true, 4221 itemWidth: 182, 4222 itemMargin: 3, 4223 minItems: 2, 4224 maxItems: 6, 4225 animationSpeed: 700, 4226 touch: true, 4227 slideshow: false, slideshowSpeed: 5000 }); 4228 }); 4229 } 4230 4231 if ( $('#comingsoon-products .flexslider').length > 0 ) { 4232 $('#comingsoon-products .flexslider').each(function(index, value) { 4233 $(this).flexslider({ 4234 animation: "slide", 4235 animationLoop: true, 4236 itemWidth: 182, 4237 itemMargin: 3, 4238 minItems: 2, 4239 maxItems: 6, 4240 animationSpeed: 700, 4241 touch: true, 4242 slideshow: false, slideshowSpeed: 5000 }); 4243 }); 4244 } 4245 4246 jQuery('.flexslider').each( function() { 4247 var $slider = jQuery(this); 4248 var $slides = jQuery(this).children().children('.slides'); 4249 if ( -1 === jQuery.inArray( $slider.data('flexslider').vars.animation, [ 'slide', 'swing' ] ) ) 4250 return; 4251 $slides.bind( 'mousewheel', function( e ) { 4252 e.preventDefault(); 4253 if ( jQuery(this).hasClass('dragging') ) 4254 return; 4255 if ( e.originalEvent.deltaY > 0 ) { 4256 $slider.flexslider('next'); 4257 } 4258 if ( e.originalEvent.deltaY < 0 ) { 4259 $slider.flexslider('prev'); 4260 } 4261 return false;
4262 } ); 4263 } ); 4264 4265 if ( $('.any-products').length > 0 ) { 4266 $(window).resize(function() { 4267 4268 $('.any-products').each(function(index, value) { 4269 var margin_vertical = $(this).data("marginVertical"); 4270 if( is.mobile() ){ 4271 $(this).find(".products-box").removeClass(".products-box").addClass("product-box"); 4272 } else { 4273 if(margin_vertical){ 4274 $(this).find(".product-box").removeClass(".product-box").addClass("products-box"); 4275 } 4276 } 4277 }); 4278 4279 if(is.mobile()){ 4280 $(".any-products").find(".grid-box").attr("style",""); 4281 adjustBoxHeights(); 4282 } 4283 4284 }); 4285 } 4286 4287 if ( $('.banner-carousel').length > 0 ) { 4288 $('.banner-carousel').each(function(index, value) { 4289 var slideSpeed = is.null( $(this).attr('data-slideSpeed') ) ? 600 : $(this).attr('data-slideSpeed'); 4290 if( slideSpeed == undefined ) { slideSpeed = 600; } 4291 var el = "#" + $(this).attr("id"); 4292 var items = $(this).data("item"); 4293 4294 var lilen = $(el+" li").length; 4295 var sliderLoop = true; 4296 if(lilen==items){sliderLoop = false;} 4297 4298 var autoplay = parseInt($(this).data("autoplay")); 4299 var boolAutoplay = false; 4300 if( autoplay ) boolAutoplay = true; 4301 $(el).removeClass("hidden"); 4302 $(el).show(); 4303 $(el).imagesLoaded( function() { 4304 var el = "#" + $(this).attr("id"); 4305 $(el+" img[data-lazy-src]").each(function(index, value) { 4306 var loadimg = $(this).attr('data-lazy-src'); 4307 $(this).attr('src', loadimg); 4308 }); 4309 var slider = $(el).lightSlider({ 4310 auto: boolAutoplay, 4311 pauseOnHover: true, 4312 pager: false, 4313 item:items, 4314 loop: sliderLoop, 4315 easing: 'cubic-bezier(0.25, 0, 0.25, 1)', 4316 speed: slideSpeed, 4317 onSliderLoad: function() { 4318 $(el).removeClass("hidden"); 4319 $(el).show(); 4320 $(el).css("height", "auto"); 4321 } 4322 }); 4323 slider.refresh(); 4324 }); 4325 }); 4326 } 4327 4328 4329 if ( $('.slideshow-container-appear li').length > 0 ) { 4330 $('.slideshow-container-appear').each(function(index, value) { 4331 var el = "#" + $(this).attr("id"); 4332 var full = $(this).data("full"); 4333 if(full){ 4334 $(this).appendTo('#content-top'); 4335 } 4336 4337 if(is.mobile()){ 4338 $(el).find("li.desktop").remove(); 4339 $(el).find("li.mobile:first").show(); 4340 } else { 4341 $(el).find("li.mobile").remove(); 4342 $(el).find("li.desktop:first").show(); 4343 } 4344 4345 $(el).imagesLoaded( function(e) { 4346 4347 if(is.mobile()){ 4348 $(e).closest("li.mobile").attr("style","width:100%"); 4349 } else { 4350 $(e).closest("li.desktop").attr("style","width:100%"); 4351 } 4352 4353 var controlNav = $(e).closest(".slideshow-container-appear").data("controlnav"); 4354 var directionNav = $(e).closest(".slideshow-container-appear").data("directionnav"); 4355 var el = "#" + $(e).attr("id"); 4356 var delay = $(e).closest(".slideshow-container-appear").data("delay"); 4357 if(delay<300) delay = 300; 4358 4359 adaptiveHeight = true; 4360 if( is.mobile() ){ 4361 //controlNav = false; 4362 //directionNav = false;
4363 adaptiveHeight = false; 4364 } 4365 4366 var slideshow_img_h = 0; 4367 $(e).closest(".slideshow-container-appear li.mobile img").each(function(index, value) { 4368 var img_h = $(this).data("height"); 4369 if( (img_h > 0) && (slideshow_img_h > 0) && (img_h != slideshow_img_h) ) { 4370 slideshow_img_h = 0; 4371 } else { 4372 slideshow_img_h = img_h; 4373 } 4374 }); 4375 4376 if( is.mobile() && slideshow_img_h == 0 ){ 4377 $(e).closest(".slideshow-container-appear").flexslider({ 4378 animation: "fade", 4379 slideDirection: "horizontal", 4380 animationLoop: true, 4381 pauseOnHover: true, 4382 pauseOnAction: false, 4383 smoothHeight: false, 4384 slideshowSpeed: delay, 4385 initDelay: 0, 4386 slideshow: true, 4387 mousewheel: false, 4388 controlNav: controlNav, 4389 directionNav: directionNav, 4390 prevText: "", 4391 nextText: "", 4392 start: function(slider) { 4393 var el = "#" + $(this).attr("id"); 4394 $(el).removeClass('loading'); 4395 } 4396 }); 4397 } else { 4398 var slider = $(e).closest(".slides").lightSlider({ 4399 auto:true, 4400 loop:true, 4401 pauseOnHover:true, 4402 adaptiveHeight:true, 4403 item:1, 4404 slideMargin:0, 4405 easing: 'cubic-bezier(0.25, 0, 0.25, 1)', 4406 speed:600, 4407 pause:delay, 4408 controls:directionNav, 4409 pager:controlNav 4410 }); 4411 slider.refresh(); 4412 setTimeout(function(){ 4413 slider.play(); 4414 slider.goToNextSlide(); 4415 slider.goToPrevSlide(); 4416 slider.goToPrevSlide(); 4417 slider.refresh(); 4418 }, 700); 4419 } 4420 4421 }); 4422 4423 }); 4424 } 4425 4426 if( $('.side_float_banner .flipper').length > 0 ) { 4427 try { 4428 $('.side_float_banner .flipper').flipper(); 4429 } catch(err) { } 4430 } 4431 4432 if( $(".flexslider").find("img").length > 0 ) { 4433 $(".flexslider").find("img").trigger('appear'); 4434 } 4435 4436 if( ($("#maincontent").outerHeight(true)-150) > $('.sidebar .smart-menu').outerHeight(true) ){ 4437 $('.sidebar .smart-menu').scrollToFixed({ 4438 marginTop: $('#navbar-top-fixed').outerHeight(true) + 20, 4439 limit: function() { 4440 var limit = $('footer').offset().top - $(".content-bottom").outerHeight(true) - $('.sidebar .smart-menu').outerHeight(true) - 120; 4441 return limit; 4442 }, 4443 }); 4444 } 4445 4446 4447 $('[data-toggle="tooltip"]').tooltip(); 4448 4449 setTimeout(function(){ 4450 $(window).trigger('resize'); 4451 }, 300); 4452 4453 $(".flex-direction-nav").remove(); 4454 4455 adjustBoxHeights(); 4456 4457 4458 $("#menu-btn").show(); 4459 $("#menu-btn").addClass('animated flash'); 4460 4461 setTimeout(function(){ 4462 $("#mobile-navbar").removeAttr('style'); 4463 }, 1000); 4464 4465 4466 4467 4468 }); 4469 4470 queue.runQueue(); 4471 4472 (function(d, s, id) { 4473 var js, fjs = d.getElementsByTagName(s)[0]; 4474 if (d.getElementById(id)) return; 4475 js = d.createElement(s); js.id = id; 4476 js.src = "https://connect.facebook.net/zh_TW/sdk.js"; 4477 fjs.parentNode.insertBefore(js, fjs); 4478 }(document, 'script', 'facebook-jssdk')); 4479 4480 if (window.location.hash == '#_=_') { 4481 window.location.hash = ''; // for older browsers, leaves a # behind 4482 history.pushState('', document.title, window.location.pathname + window.location.search); 4483 } 4484 4485 } 4486 // Store subdomains count as same site; separate tenants on the platform domain do not 4487 function qdmIsSameSiteHost(host){ 4488 var site = location.hostname.toLowerCase(); 4489 host = (host || '').toLowerCase(); 4490 if (host === site) { 4491 return true; 4492 } 4493 // Keep in sync with Response::isSameSiteHref() in system/library/response.php 4494 if (/(^|\.)(qdm\.(tw|com\.tw|cloud)|myorganic\.org\.tw)$/.test(site)) { 4495 return false; 4496 } 4497 var apex = site.replace(/^www\./, ''); 4498 return host === apex || host.slice(-(apex.length + 1)) === '.' + apex; 4499 } 4500 function sanitizeTargetBlank(){ 4501 $('a[rel~=external]').prop('target', '_blank'); 4502 $('a[target="_blank"]').each(function(){ 4503 var a = $(this); 4504 if(!qdmIsSameSiteHost(this.hostname)){ 4505 var originalRel = (this.rel === undefined) ? '' : this.rel; 4506 var newRel = originalRel.split(" "); 4507 if (originalRel.toLowerCase().indexOf('noopener') === -1){ 4508 newRel.push('noopener'); 4509 } 4510 if (originalRel.toLowerCase().indexOf('noreferrer') === -1){ 4511 newRel.push('noreferrer'); 4512 } 4513 if (originalRel.toLowerCase().indexOf('nofollow') === -1){ 4514 newRel.push('nofollow'); 4515 } 4516 a.attr('rel', newRel.join(" ").trim() ); 4517 } 4518 }); 4519 } 4520 function create_mark(name) { 4521 if (window.performance.mark === undefined) { 4522 console.log("performance.mark Not supported"); 4523 return; 4524 } 4525 window.performance.mark(name); 4526 } 4527 function initCoreJS() { 4528 $LAB.setGlobalDefaults({AlwaysPreserveOrder:true}); 4529 jQuery.ajaxPrefilter(function(s) { 4530 if ( s.crossDomain ) { 4531 s.contents.script = false;
4532 } 4533 }); 4534 $(function() { $('body').removeClass('fade-out'); }); 4535 sanitizeTargetBlank(); 4536 var def_img_idx = 1; 4537 [].forEach.call(document.querySelectorAll('img[data-src]'), function(img) { 4538 if( def_img_idx <= 12 ) { 4539 if (img.getAttribute('data-src') === null) { } else if (img.getAttribute('data-src') === '') {} else { 4540 img.setAttribute('src', img.getAttribute('data-src')); 4541 img.onload = function() { 4542 img.removeAttribute('data-src'); 4543 if (img.style.opacity !== undefined) { 4544 img.style.opacity = 1; 4545 } 4546 }; 4547 } 4548 } 4549 def_img_idx++; 4550 }); 4551 if ( $('.slideshow .flexslider').length > 0 ) { 4552 $('.slideshow .flexslider').each(function(index, value) { 4553 var el = "#" + $(this).attr("id"); 4554 var full = $(this).data("full"); 4555 if(full){ 4556 $(this).find("img").css({'width' : '100%', 'height' : 'auto' }); 4557 $(this).closest("div.slideshow").appendTo('#content-top'); 4558 } 4559 }); 4560 } 4561 $LAB.script("https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/5.0.0/imagesloaded.pkgd.min.js") 4562 .script("https://cdnjs.cloudflare.com/ajax/libs/is_js/0.9.0/is.min.js").wait(function(){ 4563 initDeferImages(); 4564 loadJS(); 4565 downloadJSAtOnload(); 4566 create_mark('mark_fully_loaded'); 4567 if( $('.wow').eq(0).length ) { 4568 getScript("https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js",function(){ 4569 new WOW().init(); 4570 }); 4571 } 4572 if( $('img[usemap]').eq(0).length ) { 4573 getScript("https://cdnjs.cloudflare.com/ajax/libs/jQuery-rwdImageMaps/1.6/jquery.rwdImageMaps.min.js",function(){ 4574 try { $('img[usemap]').rwdImageMaps(); } catch (e) { } 4575 }); 4576 } 4577 4578 }); 4579 //230117 fix flipper hover 4580 if($(".grid-box, .product-row").find(".flipper").length){ 4581 $(".grid-box, .product-row").find(".flipper").hover(function(){ 4582 oldSrc = $(this).attr("src"); 4583 $(this).attr("src",$(this).attr("data-flipper")); 4584 },function(){ 4585 $(this).attr("src",oldSrc); 4586 }); 4587 } 4588 } 4589 4590 initCoreCSS(); 4591 setTimeout(function(){ 4592 initCoreJS(); 4593 $.getJSON( "index.php?route=account/account/get_user_track&token=" + (Math.floor(Math.random() * 999) + 100), function( data ) { 4594 if( data.user_id ) { ga_userId = data.user_id; } 4595 if( data.uuid ) { 4596 try { 4597 if ('localStorage' in window && window['localStorage'] !== null){ 4598 localStorage.removeItem("qdm_user_uuid"); 4599 localStorage.setItem("qdm_user_uuid", data.uuid); 4600 qdm_user_uuid = data.uuid; 4601 } 4602 } catch (e) {} 4603 } 4604 if( data.utm_source == "affiliates" ) { ga_utm_source = data.utm_source; } 4605 4606 }); 4607 var vidDefer = document.getElementsByTagName('iframe'); 4608 for (var i=0; i<vidDefer.length; i++) { 4609 if(vidDefer[i].getAttribute('src')) { 4610 vidDefer[i].setAttribute('data-src',vidDefer[i].getAttribute('src')); 4611 } 4612 } 4613 document.getElementsByTagName("body")[0].style.display = "block"; 4614 }, 60); 4615 4616 </script>
4616
4616<script> 4617 var lazy = []; 4618 function cleanLazy(){ 4619 lazy = Array.prototype.filter.call(lazy, function(l){ return l.getAttribute('data-lazy-src');}); 4620 } 4621 function setLazy(){ 4622 lazy = document.querySelectorAll('img[data-lazy-src]'); 4623 for(var i=0; i<lazy.length; i++){ 4624 if (lazy[i].getAttribute('data-lazy-src')){ 4625 lazy[i].src = lazy[i].getAttribute('data-lazy-src'); 4626 lazy[i].removeAttribute('data-lazy-src'); 4627 } 4628 if( i >= 3 ) break; 4629 } 4630 setTimeout(function(){ 4631 var elemDefer = document.getElementById("defer-load-spin"); 4632 if( elemDefer !=null ) elemDefer.remove(); 4633 }, 300); 4634 } 4635 function isInViewport(el){ 4636 var rect = el.getBoundingClientRect(); 4637 return ( 4638 rect.bottom >= 0 && 4639 rect.right >= 0 && 4640 rect.top <= ( (window.innerHeight + 1200) || (document.documentElement.clientHeight + 1200) ) && 4641 rect.left <= (window.innerWidth || document.documentElement.clientWidth) 4642 ); 4643 } 4644 function lazyLoad(){ 4645 lazy = document.querySelectorAll('img[data-lazy-src]'); 4646 for(var i=0; i<lazy.length; i++){ 4647 if(isInViewport(lazy[i])){ 4648 if (lazy[i].getAttribute('data-lazy-src')){ 4649 lazy[i].src = lazy[i].getAttribute('data-lazy-src'); 4650 lazy[i].removeAttribute('data-lazy-src'); 4651 } 4652 } 4653 } 4654 } 4655 function registerListener(event, func) { 4656 if (window.addEventListener) { 4657 window.addEventListener(event, func) 4658 } else { 4659 window.attachEvent('on' + event, func) 4660 } 4661 } 4662 registerListener('scroll', lazyLoad); 4663 registerListener('resize', lazyLoad); 4664 setLazy(); 4665 </script>
4665 </body> </html>
4665<script src="https://cdn.qdm.cloud/assets/js/backend_other.js?v=20260318"></script>
4665
4665<script> 4666 //2025.11.20 æ°å¢è²¨å°éç¥ 4667 const isLogged = 0; //ç»å ¥æª¢æ¥ 4668 const goods_arrival_notice_allow_guest_notification = 0; 4669 const goods_arrival_notice_sms_status = 0; 4670 (function() { 4671 var s = document.createElement('script'); 4672 s.async = true; 4673 s.src = 'https://base.qdm.cloud/qdm_base//catalog/view/theme/default/js/customer/product.js?t=' + new Date().getTime(); 4674 var before = document.scripts[document.scripts.length - 1]; 4675 before.parentNode.insertBefore(s, before.nextSibling); 4676 })(); 4677 document.head.innerHTML += '<link rel="stylesheet" type="text/css" href="https://cdn.qdm.cloud/assets/css/bs_utility.css?v=20260318">'; 4678 const elm_StockAlertBtn = document.querySelectorAll('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\'], .product-info input[type=\'checkbox\'], .product-info select,.cart input[name=\'promption_id\']'); 4679 elm_StockAlertBtn.forEach(element => { 4680 element.addEventListener('change', () => { 4681 showStockAlertBtn(0); 4682 }); 4683 }); 4684 4685 function showStockAlertBtn(show = 0) { 4686 handleResize(); 4687 const notifyArrivalBtns = document.querySelectorAll('.notifyArrival'); 4688 if (notifyArrivalBtns.length === 0) return; 4689 if (show == 1) { 4690 notifyArrivalBtns.forEach(btn => { 4691 btn.classList.remove('invisible'); 4692 }); 4693 document.querySelectorAll('#button-quick-checkout').forEach(element => { 4694 element.classList.add('d-none'); 4695 }); 4696 if (document.querySelector('#button-instant-checkout')) { 4697 document.querySelector('#button-instant-checkout').classList.add('d-none'); 4698 } 4699 if (document.querySelector('#button-cart')) { 4700 document.querySelectorAll('#button-cart').forEach(element => { 4701 element.classList.add('d-none'); 4702 }); 4703 } 4704 } else { 4705 notifyArrivalBtns.forEach(btn => { 4706 btn.classList.add('invisible'); 4707 }); 4708 document.querySelectorAll('#button-quick-checkout').forEach(element => { 4709 element.classList.remove('d-none'); 4710 }); 4711 if (document.querySelector('#button-instant-checkout')) { 4712 document.querySelector('#button-instant-checkout').classList.remove('d-none'); 4713 } 4714 if (document.querySelector('#button-cart')) { 4715 document.querySelectorAll('#button-cart').forEach(element => { 4716 element.classList.remove('d-none'); 4717 }); 4718 } 4719 4720 } 4721 }; 4722 //廿 4723 function debounce(func, delay) { 4724 let timeoutId; 4725 return (...args) => { 4726 clearTimeout(timeoutId); 4727 timeoutId = setTimeout(() => { 4728 func.apply(this, args); 4729 }, delay); 4730 }; 4731 } 4732 4733 function handleResize() { 4734 4735 4736 if (getDeviceType() == 'mobile' || getDeviceType() == 'tablet') { 4737 4738 const notifyArrivalBtns = document.querySelectorAll('.notifyArrival'); 4739 if (notifyArrivalBtns.length > 0) { 4740 notifyArrivalBtns.forEach(btn => { 4741 btn.classList.add('mobile'); //æ¹è® 貨å°ä»æ¬¾æé尺寸 4742 }); 4743 } 4744 if (document.querySelector('#button-quick-checkout')) { 4745 document.querySelectorAll('#button-quick-checkout').forEach(element => { 4746 element.classList.add('fix-btn-size'); 4747 }); 4748 } 4749 if (document.querySelector('#button-instant-checkout')) { 4750 document.querySelector('#button-instant-checkout').classList.add('fix-btn-size'); 4751 } 4752 if (document.querySelector('#button-cart')) { 4753 document.querySelectorAll('#button-cart').forEach(element => { 4754 element.classList.add('fix-btn-size'); 4755 }); 4756 } 4757 } else { 4758 4759 const notifyArrivalBtns = document.querySelectorAll('.notifyArrival'); 4760 if (notifyArrivalBtns.length > 0) { 4761 notifyArrivalBtns.forEach(btn => { 4762 btn.classList.remove('mobile'); 4763 }); 4764 } 4765 if (document.querySelector('#button-quick-checkout')) { 4766 document.querySelectorAll('#button-quick-checkout').forEach(element => { 4767 element.classList.remove('fix-btn-size'); 4768 }); 4769 } 4770 4771 if (document.querySelector('#button-instant-checkout')) { 4772 document.querySelector('#button-instant-checkout').classList.remove('fix-btn-size'); 4773 } 4774 if (document.querySelector('#button-cart')) { 4775 document.querySelectorAll('#button-cart').forEach(element => { 4776 element.classList.remove('fix-btn-size'); 4777 }); 4778 } 4779 } 4780 4781 } 4782 4783 function hasStockError(message) { 4784 return /庫å/.test(message); 4785 } 4786 4787 const debouncedHandleResize = debounce(handleResize, 250); // å»¶é² 250 æ¯«ç§ 4788 4789 // ç£è½ resize äºä»¶ï¼ä¸¦ä½¿ç¨å»æéçå½å¼ 4790 window.addEventListener('resize', debouncedHandleResize); 4791 window.addEventListener('ContentLoaded', handleResize()); 4792 4793 function getDeviceType() { 4794 const width = window.innerWidth; 4795 if (width <= 768) { 4796 return 'mobile'; 4797 } else if (width > 768 && width <= 1024) { 4798 return 'tablet'; 4799 } else { 4800 return 'desktop'; 4801 } 4802 } 4803 //è£ä¸: åçé¸é select 黿åï¼inputå¯ä»¥è¢«é¸ 4804 function enableDataSelectsClick() { 4805 4806 $(document).on('click', '[data-selects]', function(event) { 4807 try { 4808 4809 var targetId = $(this).attr('data-selects'); 4810 4811 var $radioInput = $('#' + targetId); 4812 if ($radioInput.length && $radioInput.attr('type') === 'radio') { 4813 $radioInput.trigger('click'); 4814 } else { 4815 // 妿æ¾ä¸å°ç®æ¨å ç´ æé¡åä¸ç¬¦ï¼ç¼åºè¦å 4816 console.warn('DataSelects 黿èçï¼æ¾ä¸å° ID çº ' + targetId + ' ç Radio Input æé¡åä¸ç¬¦ã'); 4817 } 4818 } catch (error) { 4819 console.error('DataSelects 黿èçæç¼çé¯èª¤:', error); 4820 } 4821 }); 4822 } 4823</script>
vendor: 1 bytes, line 4823
4823
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.