中餐時間到囉~!要一起訂中餐還是吃自己想吃的?

是不是八寮灣的美食都吃膩了呢?不想天天吃一日樂食 輕便當 南京店

又不想湊外送費的你,記住這個網址一定會很喜歡

https://ezo.tw/ubereats

第一次訂還送你兩百!今天中午、晚上我想點...台北泰 民生店

龍祥七路奇維奇娃 Cheevit Cheeva花蓮扁食 家樂福內湖店ELECT
香城路To be smoothie 台北南京復興店外送距離
愛國街GB鮮釀餐廳 敦北店甜點外送
舘前路火車頭便當中式摒擋外送
南華巷CAFE IN 硬咖啡 延吉店零食外送
校背路大道18號精緻熱炒新北市外送
邱浚彥:微整過頭致纖維化 永久隆鼻成首選
邱浚彥:隆鼻後照護很重要 醫師提醒禁忌不要犯
邱浚彥:找回隆起山根! 隆鼻後,最忌熬夜抽菸
邱浚彥:鼻子越挺越好看嗎? 鼻形比例自然更重要
邱浚彥:隆鼻想用「男友的肋骨」! 醫美顧問傻住:工具人升級成材料人
男子想靠手術找回性福 丁立文:治療前應三思
丁立文醫師幫你恢復自信雄風

◆商品規格:盒(17g*15包入)
◆保存刻日 2年
.保固局限:新品瑕疵,請保存紙箱及商品組合之齊全及完整性。 : 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒快遞到府! 【周全特價中】 <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br> </div> </div> </div> </div> </div> <!-- jQuery --> <script src="js/jquery.min.js"></script> <!-- jQuery Easing --> <script src="js/jquery.easing.1.3.js"></script> <!-- Bootstrap --> <script src="js/bootstrap.min.js"></script> <!-- Carousel --> <script src="js/owl.carousel.min.js"></script> <!-- Stellar --> <script src="js/jquery.stellar.min.js"></script> <!-- Waypoints --> <script src="js/jquery.waypoints.min.js"></script> <!-- Counters --> <script src="js/jquery.countTo.js"></script> <!-- MAIN JS --> <script src="js/main.js"></script> </body> </html> ◆商品規格:盒(17g*15包入)<br><br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連絡。<br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連絡。<br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連絡。◆保留方式:請存放陰涼處.避免日光直曬及濕潤<br>◆商品規格:盒(17g*15包入)<br><p> <p><table width="650" > <tr><td valign="top" ><b><div align="center"><font style="font-size:18pt" color="#996633">果子狸咖啡 即溶濃縮沖泡咖啡粉</font></div></b><div align="center"><font color="#0000cc" size="2"><br>即溶研磨咖啡‧低糖粗食‧文化中間立異研發<br>立異新喝法,不僅喝咖啡也能品嚐到咖啡櫻桃膳食及風味,由財團法人石資</font></div></td></tr><tr><td valign="top" ><div align="center"></div><p><p><table width="650" > <tr><td valign="top" ><div align="center"></div><p></td></tr><tr><td valign="top" ><font color="#000000" size="2"></font><p><table width="650" > <tr><td valign="top" ><div align="center"></div><p></td></tr><tr><td valign="top" ><font color="#000000" size="2"></font><p><table width="650" > <tr><td valign="top" ><p></td></tr><tr><td valign="top" ><div align="left"><font color="#ff0000" size="2"><br>全球唯一 珍貴無比<br>連系承平洋深古大洋環流與黑潮深層水湧升流,東台灣承平洋深海600米以下之極品水源栽培製作。(海洋深層水包含九十餘種礦物資與微量元素)</font></div> </p>◆商品出處:台東<br><br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連系。◆留存體例:請寄存陰涼處.避免日光直曬及濕潤<br>◆注意: <br>◆商品規格:盒(17g*15包入)<br> </div> <div class="col-md-12"> <figure><img src="https://s.yimg.com/wb/images/5433AC79C4C1E4CBA9EC509570D4D0878139899C" alt=" <font size='2'>◆商品成份:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>◆商品規格:盒(17g*15包入)<br><ul><li><a href="https://youtu.be/oGBEe4sSLsw">丁立文醫師</a></li><li><a href="https://market.ltn.com.tw/article/6121">丁斌煌醫師:「曲線雕塑」解決深層脂肪 今年最夯!</a></li><li><a href="https://market.ltn.com.tw/article/6086">丁立文醫師:杜絕外遇 緊抓住男人的心</a></li><li><a href="https://act.chinatimes.com/market/content.aspx?AdID=9140&chdtv">邱浚彥</a></li></ul><a target='_blank' href='https://codyh755v0462.pixnet.net/blog/post/218960811'>柳橋西路花蓮扁食 家樂福內湖店新北市外送</a><br><a target='_blank' href='http://blog.udn.com/gertruaqd7w6/147956094'>安祥街SOMA 特調茶飲(敦化店)SOMA Tea & Mocktail (Dunhua)高雄市外送</a><br><a target='_blank' href='http://blog.udn.com/oeabtk9h/147967279'>頂新八街昭和浪漫冰室日本摒擋外送</a><br><a target='_blank' href='https://urjavaprr75e2v6.wordpress.com/2020/08/08/輝耀路campus-cafe-忠孝店幾份外送/'>輝耀路Campus Cafe 忠孝店幾份外送</a><br><a target='_blank' href='http://blog.udn.com/kellensaulg/147961605'>大中街健康美食便當外送</a><br>.保固局限:新品瑕疵,請保留紙箱及商品組合之齊備及完全性。</font> , 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒" /> <meta name="author" content="FreeHTML5.co" /> <script type="application/ld+json">{ "@context": "http://schema.org", "@type": "brand", "aggregateRating": { "@type": "AggregateRating", "bestRating": 5, "worstRating": 1, "ratingCount": 6666 , "ratingValue": 4.8 }, "image": "https://s.yimg.com/wb/images/5433AC79C4C1E4CBA9EC509570D4D0878139899C", "name": " 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒"}</script> <!-- ////////////////////////////////////////////////////// FREE HTML5 TEMPLATE DESIGNED & DEVELOPED by FreeHTML5.co Website: http://freehtml5.co/ Email: info@freehtml5.co Twitter: http://twitter.com/fh5co Facebook: https://www.facebook.com/fh5co ////////////////////////////////////////////////////// --> <!-- Facebook and Twitter integration --> <meta property="og:title" content="【驚】 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒原裝進口!"/> <meta property="og:image" content="https://s.yimg.com/wb/images/5433AC79C4C1E4CBA9EC509570D4D0878139899C"/> <meta property="og:url" content="https://tw.partner.buy.yahoo.com:443/gd/buy?mcode=MV94cVVGN2ZHdlRGK2ZwbHNlZU5vcU43NmhlVU52d080T285dC9CeWxtR01FPQ==&url=https%3A%2F%2Ftw.buy.yahoo.com%2Fgdsale%2Fgdsale.asp%3Fgdid%3D3808668"/> <meta property="og:site_name" content="台灣購物網"/> <meta property="og:description" content="前陣子在網路購物時看到 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒的商品,發現品質還不錯,很多口碑文章保舉,但 <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>◆保留刻日 2年<br><p></p><p></p> </div> <div class="col-md-12"> ◆商品規格:盒(17g*15包入)<br>◆保存刻日 2年<br>◆留存期限 2年<br>◆注意: <br>◆注意: <br>◆注意: <br>◆保存刻日 2年<br>◆保留體例:請存放陰涼處.避免日光直曬及濕潤<br> ◆保留體例:請寄存陰涼處.避免日光直曬及潮濕<br>◆商品出處:台東<br>◆保留體式格局:請存放陰涼處.避免日光直曬及濕潤<br>◆商品出處:台東<br>◆注意: <br>◆商品出處:台東<br> <ul> <li><i class="icon-facebook"></i></li> <li><i class="icon-twitter"></i></li> <li><i class="icon-instagram"></i></li> <li><i class="icon-linkedin"></i></li> </ul> </div> </aside> <div id="fh5co-main"> <div class="fh5co-narrow-content animate-box fh5co-border-bottom" data-animate-effect="fadeInLeft"> <h1 class="fh5co-heading" > 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒</span></h1> ◆注意: <br>◆商品規格:盒(17g*15包入)<br>◆留存期限 2年<br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連絡。<br><p></p>◆保存刻日 2年<br>◆商品出處:台東<br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連系。<br></font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒全聯,  <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>.保固規模:新品瑕疵,請保存紙箱及商品組合之齊備及完整性。</font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒台中大遠百,  <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>.保固範圍:新品瑕疵,請保存紙箱及商品組合之齊備及完全性。◆商品規格:盒(17g*15包入)<br>◆注意: <br>◆商品規格:盒(17g*15包入)<br><p> <ul> <li>即溶研磨咖啡</li><li>低糖粗食文化</li><li>立異新喝法</li> </ul></p><br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連系。◆商品出處:台東<br>◆商品出處:台東<br></font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒大潤發,  <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>.保固範圍:新品瑕疵,請保留紙箱及商品組合之齊備及完整性。◆保存方式:請存放陰涼處.避免日光直曬及濕潤<br>.本商品為鮮食,如有任何問題煩請在收到商品1日內與我們連系。<br>◆商品出處:台東<br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連絡。<br>◆商品出處:台東<br><br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連系。◆商品出處:台東<br>◆注意: <br>◆注意: <br><br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連系。◆保存體式格局:請存放陰涼處.避免日光直曬及濕潤<br>◆商品規格:盒(17g*15包入)<br>◆商品出處:台東<br>◆保留體式格局:請存放陰涼處.避免日光直曬及濕潤<br> </div> <div class="col-md-12"> <p class="text-center">即刻采辦 宅配到府</p>◆保存期限 2年<br>◆注意: <br>◆保留體例:請寄存陰涼處.避免日光直曬及濕潤<br>.保固規模:新品瑕疵,請保存紙箱及商品組合之齊全及完全性。</font> : 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒哪裡買對照划算呢? 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒在PTT上面說下面這個網站便宜又快速,所以我都到這個網站購買 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒了!"/> <meta name="twitter:title" content="【驚】 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒原裝進口!" /> <meta name="twitter:image" content="https://s.yimg.com/wb/images/5433AC79C4C1E4CBA9EC509570D4D0878139899C" /> <meta name="twitter:url" content="https://tw.partner.buy.yahoo.com:443/gd/buy?mcode=MV94cVVGN2ZHdlRGK2ZwbHNlZU5vcU43NmhlVU52d080T285dC9CeWxtR01FPQ==&url=https%3A%2F%2Ftw.buy.yahoo.com%2Fgdsale%2Fgdsale.asp%3Fgdid%3D3808668" /> <meta name="twitter:card" content="" /> <!-- Place favicon.ico and apple-touch-icon.png in the root directory --> <link rel="shortcut icon" href="favicon.ico"> <link href='https://fonts.googleapis.com/css?family=Roboto:400,300,600,400italic,700' rel='stylesheet' type='text/css'> <link href='https://fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'> <!-- Animate.css --> <link rel="stylesheet" href="css/animate.css"> <!-- Icomoon Icon Fonts--> <link rel="stylesheet" href="css/icomoon.css"> <!-- Bootstrap --> <link rel="stylesheet" href="css/bootstrap.css"> <!-- Owl Carousel --> <link rel="stylesheet" href="css/owl.carousel.min.css"> <link rel="stylesheet" href="css/owl.theme.default.min.css"> <!-- Theme style --> <link rel="stylesheet" href="css/style.css"> <!-- Modernizr JS --> <script src="js/modernizr-2.6.2.min.js"></script> <!-- FOR IE9 below --> <!--[if lt IE 9]> <script src="js/respond.min.js"></script> <![endif]--> </head> <body> <div id="fh5co-page"> <i></i> <h2 id="fh5co-logo"></h2> <nav id="fh5co-main-menu" role="navigation"> <ul> <li class="fh5co-active">當即購買快遞到府</li> <li>iHerb 保健品</li> <li>刷卡拿100元</li> <li>除臭襪</li><li>女內褲</li><li>無痕褲</li><li>發熱衣</li><li>床的世界</li> </ul> </nav> <div class="fh5co-footer"> ◆留存期限 2年<br>◆保留體例:請存放陰涼處.避免日光直曬及濕潤<br>.保固範圍:新品瑕疵,請保留紙箱及商品組合之齊備及完全性。</font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒台茂,  <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>◆商品規格:盒(17g*15包入)<br> .本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連系。<br><p class="text-center">馬上購置 宅配到府</p>◆留存刻日 2年<br><p><p>前陣子在網路購物時看到 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒的商品,發現品質還不錯,良多口碑文章推薦,但 <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>◆保留刻日 2年<br>◆商品規格:盒(17g*15包入)<br>◆商品出處:台東<br>◆保留體例:請存放陰涼處.避免日光直曬及濕潤<br>◆注意: <br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連絡。<br>.保固局限:新品瑕疵,請保存紙箱及商品組合之齊全及完整性。</font> : 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒哪裡買比較划算呢? 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒在PTT上面說這個網站廉價又快速,所以我都到這個網站采辦 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒了!</p>.保固局限:新品瑕疵,請保存紙箱及商品組合之齊備及完全性。</font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒新光三越,  <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br> </font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒宅配,  <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>.保固範圍:新品瑕疵,請保存紙箱及商品組合之齊全及完整性。◆商品規格:盒(17g*15包入)<br>.保固規模:新品瑕疵,請保存紙箱及商品組合之齊備及完全性。</font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒板橋遠百,  <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>.本商品為鮮食,如有任何問題煩請在收到商品1日內與我們連系。<br>◆保留刻日 2年<br>.保固規模:新品瑕疵,請保留紙箱及商品組合之齊備及完全性。</font> , 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒" /> <meta name="keywords" content=" <font size='2'>◆商品成份:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br> </div> </div> </div> <div class="fh5co-narrow-content"> <div class="row"> <div class="col-md-4 animate-box" data-animate-effect="fadeInLeft"> <h1 class="fh5co-heading-colored">第一次購置?</h1> </div> </div> <div class="row"> <div class="col-md-12 animate-box" data-animate-effect="fadeInLeft"> ◆保存期限 2年<br>◆商品出處:台東<br><p><small>© 2016  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒. All Rights Reserved.</span><ul><li><a href="https://www.diabetesdoctor.com.tw/dr-ding-liwen-g-spot-reconstruction-can-effectively-increase-female-sensitivity/">丁立文醫師</a></li><li><a href="https://market.ltn.com.tw/article/6121">丁斌煌醫師:「曲線雕塑」解決深層脂肪 今年最夯!</a></li><li><a href="https://market.ltn.com.tw/article/6086">丁立文醫師:杜絕外遇 緊抓住男人的心</a></li><li><a href="https://tw.sports.appledaily.com/appledaily/article/adcontent/20200709/38675672/">邱浚彥</a></li></ul><a target='_blank' href='https://imswxvakv9.pixnet.net/blog/post/326574093'>水泉路朝鮮閣便當外送</a><br><a target='_blank' href='http://blog.udn.com/mathewadr289/147952587'>村市路食樂屋 拉麵丼飯麵包蛋糕外送</a><br><a target='_blank' href='https://xadby7d1z1.pixnet.net/blog/post/326570193'>愛國街甘蔗媽媽 古亭店日本料理外送</a><br><a target='_blank' href='http://blog.udn.com/harithanstev/147947270'>大󻕯路SOMA 特調茶飲(敦化店)SOMA Tea & Mocktail (Dunhua)有外送嗎?</a><br><a target='_blank' href='https://jcvg5manfp1.pixnet.net/blog/post/17540782'>東萊后庒排骨酥麵菜單</a><br> <span>Designed by FreeHTML5.co </span> <span>Demo Images: Pexels</span><span>sponsor: 床的世界. 除臭襪有效嗎. 借錢.</span></small></p>◆保存方式:請存放陰涼處.避免日光直曬及濕潤<br>◆保留刻日 2年<br>◆留存刻日 2年<br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連絡。<br>◆保留體例:請存放陰涼處.避免日光直曬及濕潤<br>.保固規模:新品瑕疵,請保存紙箱及商品組合之齊全及完整性。</font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒哪裡買,  <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>◆商品出處:台東<br>◆商品出處:台東<br>◆留存期限 2年<br></font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒新竹巨城,  <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>.保固局限:新品瑕疵,請保留紙箱及商品組合之齊備及完全性。◆留存體例:請寄存陰涼處.避免日光直曬及濕潤<br>每筆預借現金手續費:新臺幣100元+預借現金金額 X 3.5%及其他費用查詢請洽滙豐銀行網站/環利率基準日為104年9月1日</span></p><p class="fh5co-lead">若您第一次購買 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒,建議領取折價券享有優惠價!另外推薦信譽卡刷卡付款,享有2.22%購物起回饋,同等享有優惠外再打98折以上優惠,當即申辦享有優惠!<br><br><span style="font-size:14px">隆重理財信用至上</span><br><span style="font-size:12px">信用消費及預借現金適用之循環信用利率:5.68%-15.00%。<ul><li><a href="https://www.diabetesdoctor.com.tw/dr-ding-liwen-creates-a-real-handsome-beauty/">丁立文醫師</a></li><li><a href="https://market.ltn.com.tw/article/6121">丁斌煌醫師:「曲線雕塑」解決深層脂肪 今年最夯!</a></li><li><a href="https://market.ltn.com.tw/article/6086">丁立文醫師:杜絕外遇 緊抓住男人的心</a></li><li><a href="https://n.yam.com/Article/20191023978924">邱浚彥</a></li></ul><a target='_blank' href='https://adamk07t26uy4.pixnet.net/blog/post/17500506'>站東路偷口夏威夷餐盒 Toco Plate Lunch美式料理外送</a><br><a target='_blank' href='https://apbgmws4l9.pixnet.net/blog/post/326577231'>湖東街ina飲拿創茶蛋糕外送</a><br><a target='_blank' href='https://marshaphmhxb.pixnet.net/blog/post/218960151'>大溪五街堤諾義式比薩-台北濟南門市TINO’S PIZZA Café菜單</a><br><a target='_blank' href='https://sandbradel497.pixnet.net/blog/post/326565446'>長順街史料味極 牛肉麵生鮮外送</a><br><a target='_blank' href='http://blog.udn.com/horstkardho/147959100'>明湖一街東門鴨莊 大安店中式料理外送</a><br></font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒家樂福,  <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>.保固局限:新品瑕疵,請保留紙箱及商品組合之齊全及完全性。</font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒折價券,  <font size='2'>◆商品成分:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>.保固規模:新品瑕疵,請保存紙箱及商品組合之齊全及完整性。◆保存方式:請存放陰涼處.避免日光直曬及潮濕<br>◆商品出處:台東<br>◆商品規格:盒(17g*15包入)<br><br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連系。<p class="text-center">馬上購買 宅配到府</p>◆注意: <br>◆商品規格:盒(17g*15包入)<br>◆商品規格:盒(17g*15包入)<br>◆商品出處:台東<br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連系。<br><p></p>◆保存期限 2年<br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連系。<br>◆留存期限 2年<br>◆商品出處:台東<br>◆商品規格:盒(17g*15包入)<br> .本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連系。<br><br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連絡。◆商品規格:盒(17g*15包入)<br>◆保留刻日 2年<br></p> <div class="row"> <div class="col-md-12"> ◆商品規格:盒(17g*15包入)<br>◆留存刻日 2年<br></font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒哪裡有,  <font size='2'>◆商品成份:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>.保固規模:新品瑕疵,請保存紙箱及商品組合之齊全及完整性。 ◆注意: <br>◆保存方式:請寄存陰涼處.避免日光直曬及濕潤<br><p></p>◆注意: <br>◆商品出處:台東<br>◆商品規格:盒(17g*15包入)<br>◆保留刻日 2年<br>◆注意: <br>◆保留體式格局:請存放陰涼處.避免日光直曬及濕潤<br>◆保留刻日 2年<br></font> </p><br>.保固範圍:新品瑕疵,請保存紙箱及商品組合之齊備及完全性。<p> <font size='2'>◆商品成份:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>◆保存期限 2年<br>◆商品規格:盒(17g*15包入)<br>◆商品出處:台東<br>◆保留體式格局:請寄存陰涼處.避免日光直曬及濕潤<br>◆注意: <br>.本商品為鮮食,若有任何問題煩請在收到商品1日內與我們連系。◆注意: <br>◆注意: <br>◆注意: <br>◆商品規格:盒(17g*15包入)<br>◆商品出處:台東<br>◆注意: <br></font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒忠孝東路 </figcaption> </figure> </div> <div class="col-md-12"> .保固規模:新品瑕疵,請保存紙箱及商品組合之齊備及完整性。◆注意: <br></font> : 果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒" class="img-responsive"> <figcaption>  <font size='2'>◆商品成份:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>.保固規模:新品瑕疵,請保存紙箱及商品組合之齊全及完整性。◆注意: <br>◆商品出處:台東<br>.保固規模:新品瑕疵,請保存紙箱及商品組合之齊全及完整性。</font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒宜蘭,  <font size='2'>◆商品成份:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>◆留存體例:請寄存陰涼處.避免日光直曬及濕潤<br>◆保留體式格局:請寄存陰涼處.避免日光直曬及潮濕<br>◆商品規格:盒(17g*15包入)<br></font>  果子狸咖啡 即溶濃縮沖泡咖啡粉(15包-盒)共3盒麗寶百貨,  <font size='2'>◆商品成份:研磨阿拉比卡種咖啡櫻桃(台灣)、 海洋深層水(台灣)、 咖啡粉(印度)、 植物性奶精(荷蘭)、糖(台灣)<br>.保固範圍:新品瑕疵,請保留紙箱及商品組合之齊全及完全性。 ◆商品出處:台東<br><ul><li><a href="https://www.sipa.gov.tw/content/file/Longtan_1_10403.pdf">丁立文醫師</a></li><li><a href="https://market.ltn.com.tw/article/6121">丁斌煌醫師:「曲線雕塑」解決深層脂肪 今年最夯!</a></li><li><a href="https://market.ltn.com.tw/article/6086">丁立文醫師:杜絕外遇 緊抓住男人的心</a></li><li><a href="https://n.yam.com/Article/20191023978924">邱浚彥</a></li></ul><a target='_blank' href='https://qm4mitchepmy7.pixnet.net/blog/post/326569869'>僑豐街八方雲集 敦南店中式料理外送</a><br><a target='_blank' href='http://blog.udn.com/cqepkmywa9/147967068'>盛德畔の食堂蛋糕外送</a><br><a target='_blank' href='https://hemangrachaq1.wordpress.com/2020/08/08/五德路沐白小農-台北通化店甜點外送/'>五德路沐白小農 台北通化店甜點外送</a><br><a target='_blank' href='http://blog.udn.com/mandhamorrm/147951023'>明湖路Lady Bean逗逗蜜斯飲料外送外送</a><br><a target='_blank' href='http://blog.udn.com/caq40nbergieg/147935444'>中興二街惠比須麵屋 Yebisu Ramen新北市外送</a><br> </div> <!-- /.article-content-inner --> <div class="tag-container-parent"> <div class="tag-container article-keyword" data-version="a"> </div> </div> <!-- /.tag-container-parent --> <div class="author-profile"> <div class="author-profile__header">創作者介紹</div> <div class="author-profile__main" id="mixpanel-author-box"> <a> <img class="author-profile__avatar" src="https://s3.1px.tw/blog/common/avatar/blog_cover_light.jpg" alt="創作者 vikramjfu6rg的部落格 的頭像" loading="lazy" /> </a> <div class="author-profile__content"> <a href="https://www.pixnet.net/pcard/vikramjfu6rg" class="author-profile__name">vikramjfu6rg</a> <p class="author-profile__info">vikramjfu6rg的部落格</p> </div> <div class="author-profile__subscribe hoverable"> <button data-follow-state="關注" class="subscribe-btn member"></button> </div> </div> </div> <!-- /.author-profile --> </div> <!-- /.article-content --> <p class="author"> vikramjfu6rg 發表在 <a href="https://www.pixnet.net">痞客邦</a> <a href="#comments">留言</a>(0) <span class="author-views">人氣( <span id="BlogArticleCount" data-stats="single" data-post-id="16018696038"> 0 </span> ) </span> </p> <!-- /.author --> <div id="pixnet-ad-content-left-right-wrapper"> <div class="left"></div> <div class="right"></div> </div> <!-- /#pixnet-ad-content-left-right-wrapper --> <div class="article-footer"> <ul class="refer"> <li> 全站分類: <a href="https://www.pixnet.net/channel/life">生活綜合</a> </li> </ul> <div class="back-to-top"> <a href="#top" title="back to the top of the page">▲top</a> </div> <div id="post-comment" class="comment-container" x-data="commentComponent({postId: '16018696038', blog_id: '7814354', allowComment: true})" x-init="init()"> <div class="post-comment__header"> <span x-text="meta.totalCount + ' 則留言'"></span> </div> <div class="post-comment__body"> <ol class="post-comment__list"> <template x-for="comment in comments" :key="comment.id"> <li class="post-comment__item"> <div class="comment-card"> <a href="#" class="comment-card__avatar-link" :aria-label="'查看 ' + comment.commenter.display_name + ' 的個人頁'"> <img class="comment-card__avatar" :src="comment.commenter.avatar" :alt="comment.commenter.display_name" loading="lazy" /> </a> <div class="comment-card__main"> <div class="comment-card__bubble"> <div class="comment-card__author-row"> <a href="#" class="comment-card__author" x-text="comment.commenter.display_name"></a> <span class="comment-card__badge comment-card__badge--author" x-show="comment.commenter.is_author">作者</span> </div> <div class="comment-card__content" x-html="comment.content"></div> </div> <!-- /.comment-card__bubble --> <div class="comment-card__meta"> <time class="comment-card__time" :datetime="comment.datetime" x-text="comment.human_time"></time> <a href="#" class="comment-card__action" x-show="isOwner()" @click.prevent="toggleReply(comment.id)">回覆</a> <a href="#" class="comment-card__action" x-show="isOwner()" :class="{ 'comment-card__action--active': comment.visibility == 1 }" @click.prevent="changeCommentVisibility(comment.id, 'show')">顯示</a> <a href="#" class="comment-card__action" x-show="isOwner()" :class="{ 'comment-card__action--active': comment.visibility == 2 }" @click.prevent="changeCommentVisibility(comment.id, 'hide')">隱藏</a> <a href="#" class="comment-card__action" x-show="isOwner()" @click.prevent="deleteComment(comment.id)">刪除</a> </div> <!-- /.comment-card__meta --> <div class="comment-card__replies"> <ol class="reply-list"> <template x-for="reply in comment.replies"> <li class="reply-list__item"> <div class="comment-card comment-card--reply" :class="{'comment-card--hidden': reply.visibility == 2 && isOwner()}"> <a href="#" class="comment-card__avatar-link" aria-label="查看 Eric 的個人頁"> <img class="comment-card__avatar" :src="reply.replyer.avatar" :alt="reply.replyer.display_name" loading="lazy" /> </a> <div class="comment-card__main"> <div class="comment-card__bubble"> <div class="comment-card__author-row"> <a :href="reply.replyer.card_url" class="comment-card__author" x-text="reply.replyer.display_name"></a> <span class="comment-card__badge comment-card__badge--author" x-show="reply.replyer.is_author">作者</span> </div> <div class="comment-card__content" x-html="reply.content"></div> </div> <div class="comment-card__meta"> <time class="comment-card__time" :datetime="reply.datetime" x-text="reply.human_time"></time> <a href="#" class="comment-card__action" x-show="isOwner()" :class="{ 'comment-card__action--active': reply.visibility == 1 }" @click.prevent="changeReplyVisibility(comment.id, reply.id, 'show')">顯示</a> <a href="#" class="comment-card__action" x-show="isOwner()" :class="{ 'comment-card__action--active': reply.visibility == 2 }" @click.prevent="changeReplyVisibility(comment.id, reply.id, 'hide')">隱藏</a> <a href="#" class="comment-card__action" x-show="isOwner()" @click.prevent="deleteReply(comment.id, reply.id)">刪除</a> </div> <!-- /.comment-card__meta --> </div> </div> </li> </template> </ol> </div> <!-- /.comment-card__replies --> <div class="comment-card__reply-editor" x-show="replyingTo === comment.id && isOwner()"> <div class="reply-editor"> <div class="reply-editor__avatar"> <img src="https://i.pravatar.cc/48?img=5"> </div> <form class="reply-editor__form"> <div class="reply-editor__input-wrap"> <textarea class="reply-editor__textarea" placeholder="寫下你的回覆..." x-model="replyDraft[comment.id].content"></textarea> </div> <div class="reply-editor__footer"> <div class="reply-editor__visibility"> <label> <input type="radio" name="reply_visibility" value="1" x-model="replyDraft[comment.id].visibility" checked> 公開回覆 </label> <label> <input type="radio" name="reply_visibility" value="2" x-model="replyDraft[comment.id].visibility"> 私密回覆 </label> </div> <div class="reply-editor__actions"> <button type="button" class="reply-editor__cancel" @click="replyingTo = null">取消</button> <button type="submit" class="reply-editor__submit" @click.prevent="submitReply(comment.id)">回覆</button> </div> </div> </form> </div> </div> <!-- /.comment-card__reply-editor --> </div> <!-- /.comment-card__main --> </div> </li> </template> <template x-if="comments.length === 0"> <li class="post-comment__item" style="text-align: center; color: #888; padding: 2rem 0;"> 沒有留言,快來搶沙發吧! </li> </template> </ol> <button class="btn-more" x-show="meta.page < meta.pageCount" @click="loadMore">載入更多</button> </div> <!-- /.post-comment__body --> <div class="post-comment__footer" x-show="allowComment"> <div class="comment-editor" x-show="isLoggedIn"> <a href="#" class="comment-editor__avatar-link" aria-label="我的個人頁"> <img class="comment-editor__avatar" :src="user?.avatar" :alt="user?.display_name" loading="lazy" /> </a> <form class="comment-editor__form" action="" method="post"> <label for="comment-message" class="comment-editor__label" x-text="'以 ' + user?.display_name + ' 身份發表留言'"></label> <div class="comment-editor__input-wrap"> <textarea id="comment-message" name="comment" class="comment-editor__textarea" rows="3" placeholder="寫下你的留言..." x-model="newComment.content"></textarea> </div> <div class="comment-editor__footer"> <div class="comment-editor__visibility"> <label class="comment-editor__visibility-option"> <input type="radio" name="visibility" value="1" x-model="newComment.visibility" checked> <span>公開留言</span> </label> <label class="comment-editor__visibility-option"> <input type="radio" name="visibility" value="2" x-model="newComment.visibility"> <span>私密留言</span> </label> </div> <div class="comment-editor__actions"> <button type="submit" class="comment-editor__button comment-editor__button--primary" @click.prevent="submitComment()"> 發佈留言 </button> </div> </div> </form> </div> <div x-show="!isLoggedIn" style="text-align: center; padding: 2rem 0;"> <p style="color: #555;">請先 <a :href="loginUrl" style="color: #007bff; text-decoration: underline;">登入</a> 以發表留言。</p> </div> </div> <!-- /.post-comment__footer --> </div> <script type="text/javascript"> function commentComponent({ postId, blog_id, allowComment }) { return { postId, blog_id, allowComment, /* ------------------------- state -------------------------- */ user: null, isLoggedIn: false, isOwner() { return this.isLoggedIn && this.user.is_blogger && this.user.blog.id === this.blog_id }, comments: [], meta: { page: 1, pageSize: 10, pageCount: 1, totalCount: 0 }, loading: false, replyingTo: null, newComment: { content: "", visibility: 1 }, replyDraft: {}, guest: { name: "", contact: "" }, get loginUrl() { return '/auth/authorize?redirect_uri=' + encodeURIComponent(location.href) }, /* ------------------------- init -------------------------- */ async init() { await this.fetchUser() await this.fetchComments() }, /* ------------------------- user -------------------------- */ async fetchUser() { try { const res = await fetch("/auth/me") if (res.status === 401) { this.isLoggedIn = false return } const user = await res.json() this.user = user this.isLoggedIn = true } catch (e) { console.error("auth error", e) } }, /* ------------------------- comments -------------------------- */ async fetchComments(page = 1) { this.loading = true const res = await fetch( `/blog/get-comments?postId=${this.postId}&page=${page}` ) const json = await res.json() this.comments = json.data this.meta = json.meta this.comments.forEach(comment => { if (!this.replyDraft[comment.id]) { this.replyDraft[comment.id] = { content: "", visibility: "1" } } }) this.loading = false }, async loadMore() { if (this.meta.page >= this.meta.pageCount) return const nextPage = this.meta.page + 1 const res = await fetch( `/blog/get-comments?postId=${this.postId}&page=${nextPage}` ) const json = await res.json() this.comments = [...this.comments, ...json.data] this.meta = json.meta }, /* ------------------------- reply editor -------------------------- */ toggleReply(commentId) { if (this.replyingTo === commentId) { this.replyingTo = null } else { this.replyingTo = commentId if (!this.replyDraft[commentId]) { this.replyDraft[commentId] = { content: "", visibility: "public" } } } }, /* ------------------------- submit comment -------------------------- */ async submitComment() { if (!this.newComment.content.trim()) return const payload = { postId: this.postId, content: this.newComment.content, visibility: this.newComment.visibility, commenter: this.isLoggedIn ? this.user.display_name : this.guest.name, contact: this.isLoggedIn ? null : this.guest.contact } const res = await fetch("/blog/post-comment", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }) if (!res.ok) { const errorData = await res.json() alert(errorData.message || "留言失敗,請稍後再試") return } const comment = await res.json() this.comments.push(comment) this.newComment.content = "" }, /* ------------------------- submit reply -------------------------- */ async submitReply(commentId) { if (!this.isOwner()) return const draft = this.replyDraft[commentId] if (!draft || !draft.content.trim()) return const payload = { commentId: commentId, content: draft.content, visibility: draft.visibility } try { const res = await fetch("/blog/post-reply", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }) if (!res.ok) { const errorData = await res.json() alert(errorData.message || "回覆失敗,請稍後再試") return } const reply = await res.json(); const comment = this.comments.find(c => c.id === commentId) if (!comment.replies) { comment.replies = [] } comment.replies.push(reply) draft.content = "" this.replyingTo = null } catch (e) { console.error("reply error", e) } }, async changeCommentVisibility(commentId, visibility) { try { const res = await fetch("/blog/comments/visibility", { method: "PATCH", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ commentId, visibility: visibility == 'show' ? 1 : 2}) }) const data = await res.json() if (!res.ok) { alert(data.message || "操作失敗") return } const comment = this.comments.find(c => c.id === commentId) if (comment) { comment.visibility = visibility == 'show' ? 1 : 2; } } catch (e) { alert("系統錯誤,請稍後再試") console.error("show comment error", e) } }, async deleteComment(commentId) { if (!confirm("確定要刪除此留言嗎?")) return try { const res = await fetch(`/blog/comments/${commentId}`, { method: "DELETE" }) const data = await res.json() if (!res.ok) { alert(data.message || "操作失敗") return } this.comments = this.comments.filter(c => c.id !== commentId) } catch (e) { console.error("delete comment error", e) } }, async changeReplyVisibility(commentId, replyId, visibility) { try { const res = await fetch("/blog/replies/visibility", { method: "PATCH", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ commentId, replyId, visibility: visibility == 'show' ? 1 : 2 }) }) const data = await res.json() if (!res.ok) { alert(data.message || "操作失敗") return } const comment = this.comments.find(c => c.id === commentId) const reply = comment.replies.find(r => r.id === replyId) if (reply) { reply.visibility = visibility == 'show' ? 1 : 2; } } catch (e) { console.error("change reply visibility error", e) } }, async deleteReply(commentId, replyId) { if (!confirm("確定要刪除此回覆嗎?")) return try { const res = await fetch(`/blog/comments/${commentId}/replies/${replyId}`, { method: "DELETE" }) const data = await res.json() if (!res.ok) { alert(data.message || "操作失敗") return } const comment = this.comments.find(c => c.id === commentId) comment.replies = comment.replies.filter(r => r.id !== replyId) } catch (e) { console.error("delete reply error", e) } }, /* ------------------------- guest avatar -------------------------- */ guestAvatar() { const name = this.guest.name || "Guest" return `https://ui-avatars.com/api/?name=${encodeURIComponent(name)}` } } } </script> <section class="rcmd-related-posts" x-data="pixPostRecommendWidget({ postId: '16018696038', limit: 3, })" > <div class="rcmd-related-posts__inner"> <div class="rcmd-related-posts__header"> <div class="rcmd-related-posts__title-wrap"> <span class="rcmd-related-posts__eyebrow">Recommended</span> <h2 class="rcmd-related-posts__title">你可能也喜歡</h2> <p class="rcmd-related-posts__desc">為你精選 3 篇值得延伸閱讀的內容</p> </div> </div> <!-- loading --> <div class="rcmd-related-posts__state" x-show="loading" x-cloak> <div class="rcmd-related-posts__loading">載入推薦文章中...</div> </div> <!-- error --> <div class="rcmd-related-posts__state" x-show="!loading && error" x-cloak> <div class="rcmd-related-posts__error" x-text="error"></div> </div> <!-- empty --> <div class="rcmd-related-posts__state" x-show="!loading && !error && posts.length === 0" x-cloak> <div class="rcmd-related-posts__empty">目前沒有推薦文章</div> </div> <!-- list --> <div class="rcmd-related-posts__grid" x-show="!loading && !error && posts.length > 0" x-cloak> <template x-for="post in posts" :key="post.id"> <article class="rcmd-post-card"> <a class="rcmd-post-card__link" :href="post.url"> <div class="rcmd-post-card__image-wrap"> <img class="rcmd-post-card__image" :src="getImage(post)" :alt="post.title" loading="lazy" > </div> <div class="rcmd-post-card__body"> <div class="rcmd-post-card__meta"> <time :datetime="post.date" x-text="formatDate(post)"></time> </div> <h3 class="rcmd-post-card__title" x-text="post.title"></h3> <p class="rcmd-post-card__summary" x-show="post.summary" x-text="post.summary" ></p> <div class="rcmd-post-card__footer"> <span class="rcmd-post-card__readmore">閱讀文章</span> </div> </div> </a> </article> </template> </div> </div> </section> <script> function pixPostRecommendWidget(config = {}) { return { postId: config.postId || '', limit: Number(config.limit || 6), endpoint: '/blog/get-widget-data?name=pixPostRecommend&postId=', loading: false, error: '', posts: [], fallbackImage: 'https://picsum.photos/seed/pixpostrecommend/800/500', async init() { if (!this.postId) { this.error = '缺少 postId'; return; } this.loading = true; this.error = ''; try { const response = await fetch(`${this.endpoint}${encodeURIComponent(this.postId)}`, { method: 'GET', headers: { 'Accept': 'application/json' } }); if (!response.ok) { throw new Error(`HTTP ${response.status}`); } const result = await response.json(); if (!result || Number(result.code) !== 0 || !Array.isArray(result.data)) { throw new Error('API 回傳格式不正確'); } this.posts = result.data .slice(0, this.limit) .map(item => ({ id: item.id, title: item.title || '', url: item.url || '#', published_at: item.published_at || '', date: item.date || '', time: item.time || '', timestamp: item.timestamp || 0, views: item.views || '', feature_image: item.feature_image || null, summary: item.summary || '', })); } catch (err) { console.error('[pixPostRecommendWidget]', err); this.error = '推薦文章載入失敗'; } finally { this.loading = false; } }, getImage(post) { return post.feature_image || this.fallbackImage; }, formatDate(post) { if (post.date) { return post.date.replace(/-/g, '/'); } return post.published_at || ''; } }; } </script> <div id="pixnet-ad-after-footer"></div> </div> <!-- /.article-footer --> </div> </div> </div> </div> </div> <div id="links"> <div id="sidebar__inner"> <div id="links-row-1"> <div id="user-info" class="hslice box"> <h4 class="box-title entry-title"></h4> <div class="box-text entry-content"> <a class="user-img" href="#"> <img src="https://s3.1px.tw/blog/common/avatar/blog_cover_light.jpg" alt="" loading="lazy" style="width: 90px; height: 90px;" /> </a> <div class="user-action hoverable"> <button data-follow-state="關注" class="subscribe-btn member" ></button> </div> <dl> <dt>暱稱:</dt> <dd>vikramjfu6rg</dd> <dt>分類:</dt> <dd> <a href="#">不設分類</a> </dd> <dt>好友:</dt> <dd> 累積中 <!-- 共75位{" "} <a href="#" id="user-info-open-friends-iframe"> (看全部) </a> --> </dd> <dt>地區:</dt> <dd> </dd> </dl> </div> </div> <div class="hslice box" data-identifier="pixHotArticle" id="hot-article"> <h4 class="box-title entry-title"></h4> <div class="box-text entry-content"> <ul id="hotArtUl"> </ul> </div> <script> (function () { async function loadHotArticle() { const box = document.querySelector('.box[data-identifier="pixHotArticle"]'); if (!box) return; const ul = box.querySelector("#hotArtUl"); if (!ul) return; if (ul.dataset.loaded) return; ul.dataset.loaded = "1"; try { const res = await fetch("/blog/get-widget-data?name=pixHotArticle", { method: "GET", headers: { "Accept": "application/json" } }); const json = await res.json(); if (json.code !== 0 || !Array.isArray(json.data)) return; const data = json.data; const fragment = document.createDocumentFragment(); data.forEach(item => { const li = document.createElement("li"); const a = document.createElement("a"); a.href = item.url; const span = document.createElement("span"); span.textContent = "(" + item.views + ") "; a.appendChild(span); a.appendChild(document.createTextNode(item.title)); li.appendChild(a); fragment.appendChild(li); }); ul.appendChild(fragment); } catch (err) { console.error("pixHotArticle load failed", err); } } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", loadHotArticle); } else { loadHotArticle(); } })(); </script> </div> <div class="hslice box" data-identifier="pixCategory" id="category"> <h4 class="box-title entry-title"> </h4> <div class="box-text entry-content"> <div class="box-more"></div> </div> <script type="text/javascript"> (function () { function formatNumber(num) { return new Intl.NumberFormat().format(num || 0); } function renderFolder(item) { const wrapper = document.createElement("div"); wrapper.className = "inner-box"; const h6 = document.createElement("h6"); h6.style.cursor = "pointer"; const img = document.createElement("img"); img.src = "//s.pixfs.net/blog/images/choc/plus.gif"; img.width = 11; img.height = 11; img.alt = "toggle"; const ul = document.createElement("ul"); ul.className = "category-" + item.id; ul.style.display = "none"; h6.appendChild(img); h6.appendChild(document.createTextNode(" " + item.name + " (" + (item.children?.length || 0) + ")")); h6.addEventListener("click", function () { const isHidden = ul.style.display === "none"; ul.style.display = isHidden ? "block" : "none"; img.src = isHidden ? "//s.pixfs.net/blog/images/choc/minus.gif" : "//s.pixfs.net/blog/images/choc/plus.gif"; }); (item.children || []).forEach(child => { const li = document.createElement("li"); const a = document.createElement("a"); a.href = child.url; a.textContent = child.name + " (" + formatNumber(child.post_count) + ")"; li.appendChild(a); ul.appendChild(li); }); wrapper.appendChild(h6); wrapper.appendChild(ul); return wrapper; } function renderCategoryList(data) { const ul = document.createElement("ul"); data .filter(item => item.type === "category") .forEach(item => { const li = document.createElement("li"); const a = document.createElement("a"); a.href = item.url; a.textContent = item.name + " (" + formatNumber(item.post_count) + ")"; li.appendChild(a); ul.appendChild(li); }); return ul; } async function loadPixCategory() { const box = document.querySelector('.box[data-identifier="pixCategory"]'); if (!box) return; const content = box.querySelector(".box-text.entry-content"); try { const res = await fetch("/blog/get-widget-data?name=pixCategory"); const json = await res.json(); if (json.code !== 0) return; const data = json.data; data.forEach(item => { if (item.type === "folder") { content.appendChild(renderFolder(item)); } }); const categoryList = renderCategoryList(data); content.appendChild(categoryList); } catch (err) { console.error("pixCategory load failed", err); } } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", loadPixCategory); } else { loadPixCategory(); } })(); </script> </div> <div class="hslice box" data-identifier="pixLatestArticle" id="latest-article"> <h4 class="box-title entry-title"> </h4> <div class="box-text entry-content"> <ul id="last-article-box"> </ul> </div> <script> (function () { async function loadLatestArticle() { const box = document.querySelector('.box[data-identifier="pixLatestArticle"]'); if (!box) return; const ul = box.querySelector("#last-article-box"); if (!ul) return; try { const res = await fetch("/blog/get-widget-data?name=pixLatestArticle", { method: "GET", headers: { "Accept": "application/json" } }); const json = await res.json(); if (json.code !== 0 || !Array.isArray(json.data)) return; const data = json.data; const fragment = document.createDocumentFragment(); data.forEach(item => { const li = document.createElement("li"); const a = document.createElement("a"); a.href = item.url; a.textContent = item.title; li.appendChild(a); fragment.appendChild(li); }); ul.appendChild(fragment); } catch (err) { console.error("pixLatestArticle load failed", err); } } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", loadLatestArticle); } else { loadLatestArticle(); } })(); </script> </div> <div class="hslice box" data-identifier="pixLatestComment" id="last-comment"> <h4 class="box-title entry-title"> </h4> <div class="box-text entry-content"> <div class="box-more"></div> <ul id="last-comment-box"> </ul> </div> <script> (function () { function truncate(str, len = 30) { if (!str) return ""; return str.length > len ? str.slice(0, len) + "..." : str; } async function loadLatestComment() { const box = document.querySelector('.box[data-identifier="pixLatestComment"]'); if (!box) return; const ul = box.querySelector("#last-comment-box"); if (!ul) return; if (ul.dataset.loaded) return; ul.dataset.loaded = "1"; try { const res = await fetch("/blog/get-widget-data?name=pixLatestComment"); const json = await res.json(); if (json.code !== 0 || !Array.isArray(json.data)) return; const fragment = document.createDocumentFragment(); json.data.forEach(item => { const li = document.createElement("li"); const a = document.createElement("a"); a.href = item.url; const title = truncate(item.post_title, 25); a.textContent = `[${item.time}] ${item.commenter} 於文章「${title}」`; li.appendChild(a); if (item.visibility === "public") { li.appendChild(document.createTextNode("留言:")); const br = document.createElement("br"); li.appendChild(br); li.appendChild(document.createTextNode(item.content)); } else { li.appendChild( document.createTextNode("發表了一則私密留言") ); } fragment.appendChild(li); }); ul.appendChild(fragment); } catch (err) { console.error("pixLatestComment load failed", err); } } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", loadLatestComment); } else { loadLatestComment(); } })(); </script> </div> <div class="hslice box" data-identifier="pixHits" id="counter"> <h4 class="box-title entry-title">參觀人氣</h4> <div class="box-text entry-content"> <ul> <li>本日人氣:<span id="blog_hit_daily"></span></li> <li>累積人氣:<span id="blog_hit_total"></span></li> </ul> </div> <script> (function () { async function loadPixHits() { const box = document.querySelector("#counter"); if (!box) return; const dailyEl = box.querySelector("#blog_hit_daily"); const totalEl = box.querySelector("#blog_hit_total"); if (!dailyEl || !totalEl) return; // 避免重複載入 if (box.dataset.loaded) return; box.dataset.loaded = "1"; try { const res = await fetch("/blog/get-widget-data?name=pixHits", { method: "GET", headers: { "Accept": "application/json" } }); const json = await res.json(); if (json.code !== 0 || !json.data) return; const data = json.data; dailyEl.textContent = data.views_today ?? "0"; totalEl.textContent = data.views_total ?? "0"; } catch (err) { console.error("pixHits load failed", err); } } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", loadPixHits); } else { loadPixHits(); } })(); </script> </div> </div> <div id="links-row-2"> <div id="sticky-sidebar-ad"></div> </div> </div> </div> </div> <div id="footer"> </div> <img src="/api/track/pv?postId=16018696038" alt="Blog Stats" width="1" height="1" style="display:none;" /> <script type="text/javascript" async src="https://static.1px.tw/blog/v1p2/js/stats.min.js?v=1778736780"></script> </div> <div id="extradiv11"></div> <div id="extradiv10"></div> <div id="extradiv9"></div> <div id="extradiv8"></div> </div> <div id="extradiv7"></div> <div id="extradiv6"></div> <div id="extradiv5"></div> <div id="extradiv4"></div> </div> <div id="extradiv3"></div> <div id="extradiv2"></div> <div id="extradiv1"></div> <div id="extradiv0"></div> </div> </div> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TRLQMPKX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- Pixnet SDK --> <script type="text/javascript"> document.addEventListener("DOMContentLoaded", function () { // datalayer push event window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': 'hydration_complete' }) }); </script> <!-- End Pixnet SDK --> <div x-data="adultWarning()" x-init="init()" x-show="visible" x-cloak class="aw-overlay" :class="{ 'mobile': isMobile }" > <div class="aw-modal"> <div class="aw-icon"> ⚠️ </div> <h2 class="aw-title">成人內容提醒</h2> <p class="aw-desc"> 本部落格內容僅限年滿十八歲者瀏覽。<br> 若您未滿十八歲,請立即離開。 </p> <p class="aw-sub"> 已滿十八歲者,亦請勿將內容提供給未成年人士。 </p> <div class="aw-actions"> <button class="aw-btn primary" @click="accept()">我已滿18歲</button> <button class="aw-btn secondary" @click="decline()">離開</button> </div> </div> </div> <script> document.addEventListener('alpine:init', () => { Alpine.data('adultWarning', () => ({ visible: false, isMobile: false, storageKey: 'adult_warning_accepted_at', init() { this.isMobile = window.innerWidth < 768; if (!window.PIXNET?.options?.AdultWarning) return; const ts = localStorage.getItem(this.storageKey); if (ts && Date.now() - parseInt(ts) < 4 * 60 * 60 * 1000) return; this.visible = true; // 🔒 防止背景滾動 document.body.classList.add('modal-open'); }, accept() { localStorage.setItem(this.storageKey, Date.now().toString()); this.close(); }, decline() { window.location.href = 'https://www.pixnet.net/'; // 或其他安全的網站 }, close() { this.visible = false; document.body.classList.remove('modal-open'); } })) }) </script> <!-- end of adult warning --> </body> </html>