// 秋: 商品名のHTML(+等)をテキスト用に変換。+は上付き文字「⁺」に function plainName(n) { return String(n || '').replace(/]*>\+<\/sup>/g, '\u207a').replace(/<[^>]*>/g, ''); } const chePhoto = 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/teisensei.png'; function isMobile() { return window.innerWidth <= 768; } let currentModalId = null; let currentBsId = null; // Sakura animation function createSakuraPetals() { const hero = document.getElementById('hero'); for (let i = 0; i < 20; i++) { const petal = document.createElement('div'); petal.className = 'sakura-petal'; petal.style.left = Math.random() * 100 + '%'; petal.style.animationDuration = (Math.random() * 6 + 10) + 's'; petal.style.animationDelay = (Math.random() * 15) + 's'; hero.appendChild(petal); } } createSakuraPetals(); // Scroll effects window.addEventListener('scroll', function() { const header = document.getElementById('header'); const stickyBar = document.getElementById('stickyBar'); const backToTop = document.getElementById('backToTop'); if (window.scrollY > 100) { header.classList.add('scrolled'); stickyBar.classList.add('visible'); } else { header.classList.remove('scrolled'); stickyBar.classList.remove('visible'); } if (window.scrollY > 600) { backToTop.classList.add('visible'); } else { backToTop.classList.remove('visible'); } }); // Product Data const tabData = { cosme: { title: '彩妝・美容', products: [ { id: 21, slug: 'eclore-whitening', name: '3D蛋殼生物磷灰石潔牙粉・藥用牙膏', brand: 'eclore', price: 1595, priceNote: '潔牙粉25g ¥1,595 / 藥用牙膏90g ¥1,595', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/09/droral_whitening_paste_powder_v2.jpg', label: 'type-hot', labelText: '話題', plan: 'platinum', isMultiProduct: true, subProducts: [ { name: '藥用3D蛋殼生物磷灰石牙膏', nameJp: '薬用3Dホワイトニングペースト', size: '90g', price: 1595 }, { name: '3D蛋殼生物磷灰石潔牙粉', nameJp: '3Dホワイトニングパウダー', size: '25g', price: 1595 } ], originalUrl: 'https://droral.jp/3dpowder/', tip: 'Dr.Oral 3D WHITE口腔亮白護理系列,採用奈米級3D蛋殼生物磷灰石,協助吸附牙齒表面污漬,維持清新亮白印象。牙粉蛋殼生物磷灰石含量高達40%,搭配多種潔淨與保濕成分,', tipFull: 'Dr.Oral 3D WHITE口腔亮白護理系列,採用奈米級3D蛋殼生物磷灰石,協助吸附牙齒表面污漬,維持清新亮白印象。牙粉蛋殼生物磷灰石含量高達40%,搭配多種潔淨與保濕成分,日常刷牙即可兼顧清潔與口腔保養。另有薬用牙膏款,輔助維持牙齦健康,是重視自然系亮白護理者的人氣選擇。\n\n
📦 規格・價格\u3000潔牙粉 25g ¥1,595/藥用牙膏 90g ¥1,595
', column: 'https://www.japankuru.com/tw/shopping/263339/', hasVideo: true, videoId: '73ffThRqZ9M', voices: [ { initial: 'S', name: 'sacuraisho', attr: '40多歲・家庭主婦', text: '裡面還添加了「3D蛋殼羥基磷灰石」這個成分,感覺蠻特別的,就想說一定要試試看。', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.facebook.com/sacuralin/posts/pfbid0QxLhS5ZfpA6oHoehXyCF7su7pb3T3SYKaBwFJuoKfD8BHA1HTiTAZhVLqb7Wshwvl' }, { initial: 'C', name: 'Chiu-wei Liu', attr: '30多歲・上班族', text: '在日本各大藥妝店與生活雜貨店(像是 Loft)都是長期熱銷的人氣商品,非常值得入手試試!', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/chiuwei.liu/posts/pfbid0ewzUBFK6pEgAMYUVe5FRLVdt3St55bXp98PGjRHcBk8EXD9Z9TuQC4UJ2LQS6kGPl' }, { initial: '蔡', name: '蔡徐嘉', attr: '30多歲・上班族', text: '刷完之後會有一種清新乾淨的感覺,睡覺的時候連帶覺得自己呼吸到的空氣都更清新了', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.facebook.com/hsuchia.tsai/posts/pfbid02yRT7QQ7och2zu1Zj6ffmBgDVFQAwMnnXztZ7WPeye1c6QYYSSHCWFZWvzGBvbELkl' }, { initial: 'C', name: 'Chih Lin Kung', attr: '30多歲・留學生', text: '另外我也很喜歡潔牙粉的設計。粉末非常細緻,搭配牙刷使用時可以更深入清潔牙齒表面。', date: '2026.03', color: '#009688', snsUrl: 'https://www.instagram.com/p/DV98gOREhkk/?img_index=1' }, { initial: 'L', name: 'lori7906', attr: '30多歲・上班族', text: '使用完牙齒整體感覺非常光滑,早上起床時口臭也比以前變淡許多~', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DV8qTpIj8qt/?img_index=1' }, { initial: 'K', name: 'Kelly', attr: '30多歲・上班族', text: '我自己本身的牙齒白到牙醫問我是不是做過美白牙齒😂 但真的完全沒有,是因為用對了牙膏!', date: '2026.03', color: '#795548', snsUrl: 'https://www.instagram.com/p/DV8oDEjiULt/?img_index=1' }, { initial: 'W', name: 'Wei Wei', attr: '30多歲・上班族', text: '最近換了這組日本的 Dr.Oral 藥用美白牙膏跟潔牙粉,目前用下來覺得很對我的胃。', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0E6xomLfbTaGgPKNcAs1HHVKMNY9JDspMALoBt2EpF3Nsz1FvMixWyMejYecgfRazl&id=100001466739903&locale=ja_JP' }, { initial: 'K', name: 'Kelly Lau', attr: '20多歲・上班族', text: '如果你也是茶飲或咖啡重度愛好者,真的很推薦試試看這款牙粉,效果真的比想像中還好!', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.facebook.com/story.php?story_fbid=26286331127664089&id=100001416789118&mibextid=wwXIfr&rdid=e5mww2xKSLxbbedj#' }, { initial: 'Ko', name: 'Kobayashi Celine', attr: '40多歲・自由工作者', text: '粉末很細緻,用牙刷沾一點刷牙🪥 刷完牙齒真的會有那種很乾淨、很清爽、牙齒滑滑的感覺', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.instagram.com/p/DV7cpPSDx_i/?igsh=MW1mMWV3M2RyZjhvYQ%3D%3D&img_index=1' }, { initial: '新', name: '新日一成', attr: '40多歲・個人創業者', text: '對於像我這種每天咖啡不離手的中年男士來說,能同時做到美白、預防蛀牙、減少口臭、保持清新口氣,真的很加分。', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/hu.wei.7/posts/pfbid09YZjzgTDsqonnDkJ3iaqePpkRuohDPszUWWvjmiYkGuxha1K5sGSJvNXR65bs58ol' } ], voiceCount: 10 }, { id: 26, slug: 'cure-white-clear-gel', name: 'Cure White Clear Gel 四效去角質凝膠', brand: 'Cure', price: 2750, priceNote: '200g ¥2,500(含稅 ¥2,750)', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/09/cure_white_clear_gel_v2.jpg', label: 'type-exclusive', labelText: '日本限定', plan: 'gold', originalUrl: 'https://www.4cs-cure.co.jp/shop/products/cure-014?srsltid=AfmBOoo6jS-5VU8neJerfFrM_Iqb-WzPzOuJzf7OW07YM2EbVTT0d-Wa', tip: 'Cure「White Clear Gel四效去角質凝膠」是每週保養必備的美肌橡皮擦,溫和去除老廢角質,同時提亮膚色、滋潤保濕並預防痘痘。', tipFull: 'Cure「White Clear Gel四效去角質凝膠」是每週保養必備的美肌橡皮擦,溫和去除老廢角質,同時提亮膚色、滋潤保濕並預防痘痘。含水溶性胎盤素與甘草酸二鉀等薬用成分,加上多種草本保濕精華,使用後肌膚光滑透亮,後續保養吸收加成,也適合初階與敏弱肌膚,每週2次即可維持最佳膚況。', column: 'https://www.japankuru.com/tw/shopping/257656/', hasVideo: true, videoId: 'lYlS9VmR0ZI', voices: [ { initial: 'J', name: 'ジャリンリン', attr: '30多歲・上班族', text: '最近保養桌上多了一瓶默默很有存在感的——Cure 藥用去角質凝膠。', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.facebook.com/jialing.shies/posts/pfbid0MeEmLeRhTFejHHzq9GqPdk3pE74GF4KX728oCFtCiQnq3kob7uLbNWETgRc8WRmKl' }, { initial: '苦', name: '苦逼留學生的碎念', attr: '30多歲・上班族', text: '最近覺得背長很多小顆粒 剛好來用看看這個去角質凝膠', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid02wsZc68pNckakhU2Asx9RtDjFJCZJV3LLDSnq73DfpZsTF9igXoUWNQETjuGnqaMPl&id=100052568835647&rdid=KQIqDkaFmpOrt5e2#' }, { initial: '3', name: '31803', attr: '40多歲・家庭主婦', text: '最近用到一罐還蠻好用的去角質', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.facebook.com/osakapleb/posts/pfbid031dSJnTWkiVFXNPMjjsxHTTZxCeUWc7Ucu3CPtypNrzCGqemwuttv38DntxxyQmfql' }, { initial: 'C', name: 'Chiu-wei Liu', attr: '30多歲・上班族', text: '這次是介紹Cure這款 去角質Gel,洗澡的時候一起去角質 超方便!!!!', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/chiuwei.liu/posts/pfbid0ff3vdZyZAUFPUP4ZBZjTcGpQXkxXTvmPoNwphHN5D6dgtPF2jLWuRXCaHGZrxPhRl' }, { initial: 'R', name: 'Rebecca528', attr: '30多歲・上班族', text: '我自己其實已經默默用到 第三罐了。', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DV063CPj2B-/' } ], voiceCount: 5 }, { id: 37, slug: 'systema-hagukiplus-premium', name: '日本獅王細潔 適齦佳 極緻8效 牙膏', brand: '日本獅王細潔 適齦佳', price: 987, priceNote: '95g ¥987〜1,078 ※開放價格(オープン価格)', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/09/lion_haguki_set.png', label: 'type-hot', labelText: '牙周護理', plan: 'platinum', originalUrl: 'https://systema.lion.co.jp/product/premium/hamigaki_premium.htm', tip: '同時具有八種口腔護理機能,修復牙齦組織並透過抗糖化抑制發炎,預防牙周病。', tipFull: '医薬部外品\n日本獅王「細潔適齦佳極緻牙膏」,讓每日刷牙實現全方位護理。嚴選維生素E(醋酸生育醇)、傳明酸、GK2(甘草酸二鉀)與 IPMP(異丙基甲基酚)等4 種藥用成分。可透過牙齦的抗糖化來抑制發炎等作用,達到預防牙周病的效果。一條滿足八大口腔護理需求,搭配上質調香與微光珠光質地,讓日常牙周保養優雅又舒心!\n\n
📋 販售名稱 システマCS
🏷 分類 医薬部外品
💊 藥用成分 維生素E(醋酸生育醇)、傳明酸、GK2(甘草酸二鉀)、IPMP(異丙基甲基酚)
✅ 八大口腔護理機能 潔淨口腔與牙齒、預防牙周病※、牙齦出血、牙齒敏感、牙結石形成、蛀牙及口臭
\n※ 牙周病:牙齦炎・牙周炎之總稱。
※ 本商品為日本國內販售之產品。
※ 若已有牙周病問題,建議先接受專業牙醫的診療。', column: 'https://www.japankuru.com/tw/shopping/302320/', hasVideo: true, videoId: 'jQu5buowWX8', voices: [], voiceCount: 0 }, { id: 39, slug: 'octo-shampoo-rinse', name: 'OCTO清屑舒癢洗潤髮乳', brand: 'OCTO', price: 713, priceNote: 'オクト薬用シャンプー320ml ¥713 / オクト薬用リンス320ml ¥713', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/09/lion_oct_set.jpg', label: 'type-hot', labelText: '洗潤組', plan: 'gold', originalUrl: 'https://oct.lion.co.jp/', tip: '全家人的頭皮屑、頭皮癢與異味,預防就靠OCTO洗潤組。', tipFull: '医薬部外品\nLION日本獅王「OCTO清屑舒癢洗潤髮乳」是長年銷售預防頭皮屑的產品。屬於添加薬用有效成分「吡羅克酮乙醇胺鹽(Octopirox)」的醫藥部外品,能透過殺菌及抗氧化作用來抑制菌之繁殖與皮脂氧化,進而預防頭皮屑與頭皮癢,並具備除味抗菌效果以護理頭皮異味。洗後髮絲不乾澀、清爽舒暢,打造清潔地肌與順滑髮質,散發溫和淡雅的花香味。\n\n
📋 販售名稱 オクトシャンプーSa・オクトリンスMa
🏷 分類 医薬部外品
💊 薬用有效成分 吡羅克酮乙醇胺鹽(Octopirox)
✅ 主要作用 抑制黴菌等菌的繁殖、抑制皮脂氧化與異味、預防頭皮屑與頭皮癢
\n※ 本商品為日本國內販售之產品(PR)。
※「薬用」不等同於「藥用」。
※ 若為脂漏性皮膚炎或頭皮濕疹等問題,建議先尋求皮膚科醫師的專業治療。', column: 'https://www.japankuru.com/tw/shopping/302467/', hasVideo: false, videoId: '', voices: [], voiceCount: 0 } ] }, medicine: { title: '醫藥品', products: [ { id: 7, slug: "kowa-theguard-seichoyaku", name: "顧多整腸錠α³+", brand: "興和株式會社", price: 1628, priceNote: "150錠 ¥1,628 / 350錠 ¥3,058 / 550錠 ¥4,158", image: "https://www.japankuru.com/gld-kanri/data/uploads/2026/06/4987067244706-t.png", label: "type-hot", labelText: "腸活", plan: "platinum", originalUrl: "https://hc.kowa.co.jp/otc/11806", tip: "不只是整腸,還能同時護胃消脹氣!添加納豆菌、乳酸菌以及比菲德氏菌等三種特性不同的好菌,能夠改善腸道環境的健康狀態。", tipFull: "第3類医薬品\n不只是整腸,還能同時護胃消脹氣!添加納豆菌、乳酸菌以及比菲德氏菌等三種特性不同的好菌,能夠改善腸道環境的健康狀態。同時添加能夠修復胃黏膜的氯化甲硫胺基酸(MMSC),以及多種健胃中藥成分、胃酸中和成分及消脹氣成分,是一款兼顧胃部健康的腸活*醫藥品! *指透過益生菌調整腸內環境。\n\n
📋 名稱 KOWA-顧多整腸錠α³+
🏷 醫藥分類 第3類医薬品
✅ 適應症 整腸(通便)、軟便、便祕、胃部・腹部膨滿感、消化不良、胃脹、胃機能低落、食欲不振、暴食、飲酒過量、想吐、嘔吐、胃酸逆流感、胸悶、胃部不舒服、胃重壓感、胃酸過多、打嗝、胃痛
\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。", column: 'https://www.japankuru.com/tw/shopping/285061', hasVideo: true, videoId: 'G0-5yVbGDhw', voiceCount: 11, voices: [ { initial: "在", name: "在日本的庶民生活", attr: "40代・主婦", text: "我沒有便秘的問題,但大便很臭,所以想說吃看看。不過胃脹氣還是腹部脹氣改善很多,也是意外的收穫。有脹氣困擾的人可以參考看看,肚子舒服很多。", date: "2026.06", color: "#C9A962", snsUrl: "https://www.facebook.com/reel/999929736090146" }, { initial: "m", name: "mao_travel_japan", attr: "30代・會社員", text: "實際服用一段時間後,我最有感的是飯後腹脹感減少許多,排便也變得比較規律。雖然不是立刻見效的類型,但整體感受相當溫和。", date: "2026.06", color: "#E91E63", snsUrl: "https://www.instagram.com/p/DZuAtN0kZd9/" }, { initial: "均", name: "均媽與熙正媽媽", attr: "30代・主婦", text: "我是一個很愛吃的女生,一天吃不停,除了喜歡吃放題之外,還喜歡吃零食、汽水、甜品等等。有時候吃得太飽肚子脹,還會出現便秘情況。", date: "2026.06", color: "#9C27B0", snsUrl: "https://www.instagram.com/p/DZMfktVFK5L/?img_index=1" }, { initial: "W", name: "Wei Wei", attr: "30代・會社員", text: "前陣子被朋友推坑了這款日本阿公阿嬤家幾乎常備的「The Guard 整腸錠 α3+」,吃了一陣子覺得真的滿有感的。", date: "2026.06", color: "#3F51B5", snsUrl: "https://www.facebook.com/permalink.php?story_fbid=pfbid029fHG1Uy4ad7ft1H5eG59kTT8nEhWoxMRaW3bztdNY2XQZBGQw1WzfGLh43f4ce8Gl&id=100001466739903" }, { initial: "新", name: "新日一成", attr: "40代・個人事業主", text: "最近出門都會隨身攜帶,希望能把腸胃狀態維持在最佳狀況,工作和生活都更有精神。", date: "2026.06", color: "#009688", snsUrl: "https://www.facebook.com/hu.wei.7/posts/pfbid02gj8yU4hXut43R5vBDR5n4Zdjr6eoU6yEUAvnnRyQPsHHuQvYfPj6PUtfNDJi4Ymml" }, { initial: "花", name: "🤘花森米米🤘", attr: "30代・自由工作者", text: "前陣子大吃燒肉後,肚子不太爽快,回家也是趕快吃這款。", date: "2026.06", color: "#FF5722", snsUrl: "https://www.instagram.com/p/DZ1y-eOE2bh/?img_index=1" }, { initial: "A", name: "A", attr: "30代・會社員", text: "還有,藥也蠻小的很容易吞,對於經常外食、生活作息不規律,或容易有便秘、軟便、胃脹等困擾的人來說,是一款值得嘗試的整腸產品。", date: "2026.06", color: "#795548", snsUrl: "https://www.instagram.com/p/DZuiRH9kw4r/?img_index=1" }, { initial: "優", name: "優妮 | 大阪京都神戶旅遊攻略", attr: "30代・會社員", text: "對容易便秘的人來說,能每天順順的真的會很感動🥹 這款我應該會繼續吃。", date: "2026.06", color: "#607D8B", snsUrl: "https://www.instagram.com/p/DZZ7Z_TE0C0/?img_index=1" }, { initial: "高", name: "高嘉宏", attr: "30代・會社員", text: "年初回台做了腸胃鏡檢查,原本以為身體沒什麼異樣,殊不知結果出來發現有輕微胃食道逆流以及罹患幽門桿菌,這讓我開始關注對胃部的保健與照護。", date: "2026.06", color: "#4CAF50", snsUrl: "https://www.facebook.com/100002005371688/posts/26914166374900177/?mibextid=wwXIf&rdid=EXZeFIOH8ExthFpi" }, { initial: "W", name: "Wu Shan", attr: "30代・會社員", text: "這瓶帶出門非常方便、毫無負擔,也比較能提醒自己定時服用,畢竟有穩定攝取才能知道效果。", date: "2026.06", color: "#FF9800", snsUrl: "https://www.facebook.com/100000366242237/posts/27591511050444399/?rdid=aglWhfY6UWtQZ4iO" }, { initial: "C", name: "Chiu-wei Liu", attr: "30代・會社員", text: "生理期前容易卡關、或是經常出差旅遊的人,行李箱裡絕對要帶上它,隨時神救援!", date: "2026.06", color: "#2196F3", snsUrl: "https://www.facebook.com/1481596173/posts/10235428376798390/?mibextid=wwXIfr&rdid=RxxJro2p95wPEmkf" } ] }, { id: 4, slug: 'pabron-gold-a', name: '百保能GOLD A (パブロンゴールドA) 綜合感冒藥', brand: '大正製藥', price: 2057, priceNote: '130錠・28包 ¥2,057 / 210錠・44包 ¥3,025', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/teisensei_pabron_golda.jpg', label: 'type-exclusive', labelText: '日本限定', plan: 'platinum', originalUrl: 'https://brand.taisho.co.jp/pabron/', tip: '大正製藥「PABRON百保能」為創立近百年的經典綜合感冒藥品牌,主以呼吸道黏膜防禦為設計理念。紅金「GOLD A」含乙醯胺酚,適合多症狀初期緩解;', tipFull: '大正製藥「PABRON百保能」為創立近百年的經典綜合感冒藥品牌,主以呼吸道黏膜防禦為設計理念。紅金「GOLD A」含乙醯胺酚,適合多症狀初期緩解;藍金版「Pro-X」,採用布洛芬作為退燒止痛成分(限15歲以上使用)。兩款皆針對咳嗽、喉痛、鼻塞等症狀設計,是臺日人氣家庭常備藥熱門選擇。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: 'https://www.japankuru.com/tw/shopping/264144/', hasVideo: false, voices: [ { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: 'パブロンゴールドA,是在日本很常見的家庭常備藥之一。', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.instagram.com/p/DV5MG-mEqyl/' }, { initial: '辛', name: '辛宜靜', attr: '30多歲・上班族', text: '只要有任何感冒前兆都可以喝一包,讓我的突發感冒可以先壓壓。', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.facebook.com/kid0804/posts/pfbid02LoRRVmigQ33XsvCQBKUtQe8hNhpq5QJR5kQP8nyrQrtJcMYmNsq1moy5oHFgJGFQl' }, { initial: '日', name: '日本零食好吃驚', attr: '30多歲・上班族', text: '這是我們家中必備的「感冒藥」,可以用來緩解各式各樣的感冒症狀,真的太全能太好用了!', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.instagram.com/p/DVntk4BGpdZ/?img_index=1' } ], voiceCount: 3 }, { id: 5, slug: 'pabron-ace-prox', name: '百保能Pro-X (パブロンエースPro-X) 感冒藥', brand: '大正製藥', price: 1518, priceNote: '18錠・6包 ¥1,518 / 36錠・12包 ¥2,178', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/column-pabron-aceprox-back-label.jpg', label: 'type-exclusive', labelText: '日本限定', plan: 'platinum', originalUrl: 'https://brand.taisho.co.jp/pabron/', tip: '大正製藥「PABRON百保能」為創立近百年的經典綜合感冒藥品牌,主以呼吸道黏膜防禦為設計理念。藍金版「Pro-X」採用布洛芬作為退燒止痛成分(限15歲以上使用)。', tipFull: '大正製藥「PABRON百保能」為創立近百年的經典綜合感冒藥品牌,主以呼吸道黏膜防禦為設計理念。紅金「GOLD A」含乙醯胺酚,適合多症狀初期緩解;藍金版「Pro-X」,採用布洛芬作為退燒止痛成分(限15歲以上使用)。兩款皆針對咳嗽、喉痛、鼻塞等症狀設計,是臺日人氣家庭常備藥熱門選擇。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: 'https://www.japankuru.com/tw/shopping/264144/', hasVideo: false, voices: [ { initial: 'S', name: 'Sharon Hsieh', attr: '20多歲・上班族', text: '裡面含有能幫助改善 喉嚨痛、咳嗽與發炎 的成分,能在感冒初期就好好對應各種不舒服的症狀。', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.facebook.com/sharonxhsieh/posts/pfbid02YsaPMn7pxzBi9SsateQtua66EGeUfetxHbuEUUNSf75VSSm5YRnLSU1W1coLfZ4Fl' }, { initial: '林', name: '林桑的日本遊記', attr: '40多歲・上班族', text: '這款是日本大正製藥的產品,在日本算是滿有名的老品牌,很多人逛藥妝店應該都看過!', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.instagram.com/p/DV3QDCtkqiZ/?img_index=1' }, { initial: '如', name: '如月ゆな', attr: '30多歲・上班族', text: '我最喜歡它的錠劑設計,完全沒有粉末感冒藥常見的那種苦味。', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DVdNKKrklYv/?igsh=c251N3UxZW1zZWI4&img_index=1' }, { initial: '李', name: '李映宣', attr: '20多歲・上班族', text: '粉末型的綜合感冒藥,一包一包分好,其實還蠻方便的。', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid031SjxEMnTAgBnoYGh9oHU9G4GPoLuYcfjHdtDdTwEUAuSeY6r7iso9htZ8PaadJf3l&id=100001498612711' }, { initial: 'I', name: 'Iru Chin', attr: '30多歲・自由工作者', text: '其實最早的パブロン是止咳藥,之後才演變為感冒藥💊,我都拿來當家裡常備藥。', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.facebook.com/natsuki.chin.7/posts/pfbid06VY12vPT9e52fifhschY4BJUbrKL6iBPkkgTePfGV7JAxiJmQTRgmeMgTVpNW9oQl' }, { initial: '新', name: '新日一成', attr: '40多歲・個人創業者', text: '如果是像我一樣,常常一感冒就先從喉嚨痛開始的人,這款真的可以放在家裡備著。', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.facebook.com/hu.wei.7/posts/pfbid0kVwaP1MQ8PtaWQ8UypMGDDea1G1kBMniiFtbGV5pvBNwxDGuGbvgHh3urtq7vvsVl' }, { initial: 'S', name: 'Shizuku Chu', attr: '30多歲・上班族', text: '製藥老牌廠商的藥,值得信賴而且我個人是覺得蠻有效果又好吞還不會愛睡覺~', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/story.php?story_fbid=35337702805828358&id=100000462608255&mibextid=wwXIfr&rdid=3EvRqFa0oMasAJ7w#' } ], voiceCount: 7 }, { id: 20, slug: 'kenei-magnesium-oxide', name: '健榮製藥 氧化鎂E便秘藥', brand: '健榮製藥', price: 680, priceNote: '40錠 ¥680 / 90錠 ¥1,200 / 180錠 ¥2,200 / 360錠 ¥4,000', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/09/kenei_mg_constipation_90_v2.jpg', label: 'type-hot', labelText: '新話題', plan: 'platinum', originalUrl: 'https://www.kenei-pharm.com/ebenpi/', tip: '健榮製藥-氧化鎂E便秘藥,日本藥妝店常見的非刺激性便秘藥。採用國產氧化鎂透過滲透壓機制增加腸道水分,協助軟化糞便,較不易引發腹痛與依賴性。', tipFull: '健榮製藥-氧化鎂E便秘藥,日本藥妝店常見的非刺激性便秘藥。採用國產氧化鎂透過滲透壓機制增加腸道水分,協助軟化糞便,較不易引發腹痛與依賴性。速崩技術錠劑,搭配微甜檸檬風味,提升適口性,接受度較高。成人可依體質調整劑量,輕巧包裝方便攜帶,是慢性便秘管理的選擇之一。非刺激性瀉藥效果較溫和,是日本藥妝店便秘藥的新話題,也是慢性便秘管理的新選擇。', column: 'https://www.japankuru.com/tw/shopping/263178/', hasVideo: true, videoId: '9m6r4sCWBrw', voices: [ { initial: 'W', name: 'Wei Wei', attr: '30多歲・上班族', text: '最近日本開始回溫,出門小旅行的機會變多。我發現他們家出的旅行裝(隨身包)真的是大救星!', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid02vNkKin39zi89gjSKPA7NNozyURvonfkLDmYBLkwa2gtLBPyd3Dq3uPLJ5cEU64LFl&id=100001466739903' }, { initial: '新', name: '新日一成', attr: '40多歲・個人創業者', text: '家裡有個小一的孩子,有時候因為飲食不均衡或水喝太少,也會有便便不順的情況。這種溫和型的產品,家裡備著就很安心。', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/hu.wei.7/posts/pfbid0E938bxNDG3zkg2dqYHL981CiDUmiF1EtrEToUrom28V9gagqfhE45KG2LY1gbuwKl' }, { initial: 'S', name: 'Sharon Hsieh', attr: '20多歲・上班族', text: '現在我的行李裡,有個專門裝藥的小袋子,裡面除了胃藥和感冒藥之外,也多放了這個腸胃的小備品。', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.facebook.com/sharonxhsieh/posts/pfbid028tT3vj9iSgPR5E8JZ9hmmk8bRwA6cDhBwSiSMkN9j1tYc8YNkkuSNCkYM5BMY4vDl' }, { initial: '李', name: '李映宣', attr: '20多歲・上班族', text: '偶爾不太順的時候用,可以讓狀態慢慢回到正常,也不會有太強烈的不適感', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid02fT9dv8vmFpenvA1giybBKXNwW56UyLg92QEHBhrNfG8pw6554SnvrMF8JrYNNdZsl&id=100001498612711' }, { initial: '優', name: '優妮帶你遊大阪不踩雷', attr: '30多歲・上班族', text: '旅行裝放包包超方便,真的就是那種「欸我有帶,心就定一半」的安心感', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DVU-hr4krds/?img_index=1' }, { initial: '日', name: '日本零食好吃驚', attr: '30多歲・上班族', text: '這款產品的核心成分是氧化鎂,不是那種強行刺激腸道的瀉藥,而是透過「吸收水分」來軟化便便', date: '2026.03', color: '#795548', snsUrl: 'https://www.instagram.com/p/DV4zkhXD7Kb/?img_index=1' }, { initial: 'C', name: 'Chih Lin Kun', attr: '30多歲・留學生', text: '實際服用後覺得錠劑大小適中,吞服也很方便', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.instagram.com/p/DV9-_pyki69/?img_index=1' }, { initial: 'P', name: 'pudding🍮', attr: '30多歲・上班族', text: '它與市面上強迫腸胃蠕動的瀉藥完全不同,這種不絞痛、溫和的排便體驗,真的非常實用。', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.instagram.com/p/DV8zHNnkhwb/' }, { initial: 'S', name: 'shark_dosa', attr: '20多歲・上班族', text: '像我這種飲食一亂掉、腸胃就容易出狀況的人,看到這種實用型常備藥真的會默默記下來。', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.instagram.com/p/DV8pTwsD1kM/?img_index=1' }, { initial: '蔡', name: '蔡昀臻', attr: '20多歲・上班族', text: '身為外食族,有的時候工作壓力大,肚子總是卡卡的,這時就需要這個好幫手', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/story.php?story_fbid=26081505711511890&id=100002374528664&mibextid=wwXIfr&rdid=KbFxdcK1fawc7zq3#' } ], voiceCount: 10 }, { id: 23, slug: 'oronine-h-ointment', name: 'Oronine H軟膏', brand: '大塚製藥', price: 385, priceNote: '11g軟管裝 ¥385 / 50g軟管裝 ¥770', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/oronine_portrait_under_1mb.jpg', label: 'type-exclusive', labelText: 'PR', plan: 'basic', isPR: true, originalUrl: 'https://www.otsuka.co.jp/ohn/', tip: '「PR」大塚製藥-Oronine H應急軟膏,在日長銷73年的家庭常備外傷用藥。含葡萄糖酸氯己定溶液,適用擦傷、乾裂、輕微燙傷及痤瘡等。11g與50g兩種尺寸,方便隨身攜帶。', tipFull: '第2類医薬品「PR」\n身邊有很多日本朋友跟我說,發跡於四國・徳島縣的「Oronine H軟膏」根本就是他們童年回憶的一部分。因為許多人的家中都會常備有這一瓶,只要調皮搗蛋擦傷,或是粗心大意不小心被燙到,甚至是冬天皮膚乾裂時,家人就會拿出這罐軟膏。不過也有11公克和50公克的條裝版本,方便攜帶可以放在包包作為隨身應急藥膏。\n\n「Oronine H軟膏」主要含有葡萄糖酸氯己定溶液(Chlorhexidine Gluconate),這是廣泛用於殺菌、消毒的有效成分。除了可以用於擦傷、刀傷、裂傷、乾裂、以及輕微燙傷等部位之外,亦可依適應症使用於痤瘡與粉刺等皮膚狀況。\n\n
📋 名稱 オロナインH軟膏
🏷 醫藥分類 第2類医薬品
✅ 適應症 擦傷・裂傷・乾裂・輕微燙傷・痤瘡・粉刺
\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: null, hasVideo: false, voices: [], voiceCount: 0 }, { id: 25, slug: 'taisho-gaichoyaku-k', name: '大正胃腸藥K', brand: '大正製藥', price: 1670, priceNote: '16包/70錠 ¥1,670 / 24包/110錠 ¥2,299 / 38包/190錠 ¥3,388 / 50包/230錠 ¥4,054', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/taisho-gaichoyaku-k-man-holding-1.jpg', label: 'type-exclusive', labelText: '日本限定', plan: 'basic', originalUrl: 'https://www.catalog-taisho.com/category/05/001/01082/', tip: '大正製藥-大正胃腸藥K,兼顧敏弱胃調理,幫助消化與舒緩緊張胃。獨家結合「安中散」與「芍藥甘草湯」,應對消化不良到壓力大引起的胃部不適。日本上班族高人氣家庭常備藥。', tipFull: '日本藥妝店裡陳列的眾多胃腸藥當中,誕生於1978年的大正漢方胃腸藥也是眾多日本人推崇的經典家庭常備藥。獨家結合能夠促進胃腸消化機能的「安中散」,以及舒緩胃部緊張狀態的「芍藥甘草湯」,能夠應對消化不良到壓力大引起的胃部不適,不少忙碌的日本上班族的抽屜或包包當中,都可見到這款長銷多年的胃腸藥。\n說到「大正胃腸藥K」,則是日本藥妝通才知道的大正漢方胃腸藥「芍薬甘草湯增量版」!同樣是5歲以上就可服用,但「芍藥甘草湯」的添加劑量則是從140毫克增量至170毫克!\n\n名稱:大正胃腸薬K\n醫藥分類:第2類医薬品\n適應症:胃痛、胃脹、胃炎、胃部不適、食慾不振、打嗝、腹痛、胸口灼熱、噁心、胃酸過多、腹部膨脹感\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: null, hasVideo: false, voices: [ { initial: 'R', name: 'RUBY Lee', attr: '20多歲・上班族', text: '我自己覺得用起來算是比較溫和,不會有太強烈的刺激感,但又可以慢慢讓腸胃舒服一點。', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid032mWxeYHKL1JKqorutHXjhPozw197trNdT61mfuyEBSwYgsBv9vNSk189kSEYypvol&id=100001498612711' }, { initial: '劉', name: '劉采蓉', attr: '30多歲・留學生', text: '裡面結合了「安中散」(針對胃痛、胃酸過多)以及「芍藥甘草湯」(偏鎮痛作用),整體是比較溫和的調理型胃藥。', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/teresa.liu.1293/posts/pfbid09ukmjszJhKUuMKEdoPNAo5Qz9wpjXtjN9kidRJ5cpnpRQs2JUNyykRFkYSf9eWZGl' }, { initial: 'P', name: 'purple', attr: '30多歲・上班族', text: '最喜歡的是它的微粒設計,顆粒非常細,小小的很好入口,也很容易溶於水。', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DVk6NJvmWOu/?img_index=1' }, { initial: 'S', name: 'Sharon Hsieh', attr: '20多歲・上班族', text: '最近開始養成一個習慣—— 出國或回台灣一定會帶胃藥。', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/sharonxhsieh/posts/pfbid02CMHbUCU9sm7cG5pFfBS6suNG1CRewaphiA58r61JT3JJmqwMvQ7y8Z6GqwqCUCp7l' }, { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: '獨立包裝,隨身攜帶方便,在外如果突然胃不舒服,就能馬上吃一包', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DV5MYIhEkKm/?img_index=1' } ], voiceCount: 5 }, { id: 34, slug: 'wakamoto-strong', name: '強力若元錠(強力わかもと)', brand: 'わかもと製藥', price: 1320, priceNote: '300錠 ¥1,320 / 1000錠 ¥3,300 / 顆粒24包 ¥1,320', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/09/強力わかもと300錠③-のコピー-scaled.jpg', label: 'type-hot', labelText: '話題', plan: 'gold', originalUrl: 'https://www.wakamoto-pharm.co.jp/', tip: '跨越世代的經典腸胃常備藥。獨家米麴菌(NK菌)可產生大量消化酵素促進消化,搭配乳酸菌調節腸道菌叢平衡,並結合啤酒酵母提供豐富維生素B群與多種營養素。', tipFull: "指定医薬部外品\n跨越世代的經典腸胃常備藥。獨家米麴菌(NK菌)可產生大量消化酵素促進消化,搭配乳酸菌調節腸道菌叢平衡,並結合啤酒酵母提供豐富維生素B群與多種營養素。三效合一設計能同步兼顧消化、整腸與營養補充,輕鬆應對胃腸不適與日常疲勞。\n\n
📋 販售名稱 強力わかもと
📦 規格・價格\u3000錠劑 300錠 ¥1,320/錠劑 1000錠 ¥3,300/顆粒 24包 ¥1,320
🏷 醫藥分類 指定医薬部外品
✅ 適應症 胃部不適、食欲不振、消化不良、暴食、胃弱/整腸(通便)、軟便、便祕、腹部膨滿感/滋養強壯、虛弱體質、肉體疲勞・病中病後等情況之營養補給
💊 用法用量 1日3次,於餐後30分鐘內搭配開水或溫水服用。15歲以上:1次9錠/11歲以上未滿15歲:1次6錠/8歲以上未滿11歲:1次5錠/5歲以上未滿8歲:1次3錠/未滿5歲:不宜服用
\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。", column: 'https://www.japankuru.com/tw/shopping/298041/', hasVideo: true, videoId: 'YbEF8GikAhA', voiceCount: 5, voices: [ { initial: '零', name: '日本零食好吃驚', attr: '30多歲・上班族', text: '每次只要回台灣,代購清單排第一的永遠是藥妝店這罐「強力WAKAMOTO」', date: '2026.09', color: '#E65100', snsUrl: 'https://www.instagram.com/p/Ddp8RZNmuuY/?img_index=1' }, { initial: 'Ch', name: 'Cherry Chang', attr: '20多歲・上班族', text: '最近開始把WAKAMOTO放在日常生活裡,當作飲食比較不規律時的營養補給。', date: '2026.09', color: '#AD1457', snsUrl: 'https://www.instagram.com/p/DdkaHMjGE4e/?img_index=1' }, { initial: 'R', name: 'ʀᴜʙʏ Lee ✿ ルビ', attr: '20多歲・上班族', text: '所以強力WAKAMOTO不只是針對單一問題,而是從消化、腸道到營養補充一起照顧', date: '2026.09', color: '#00838F', snsUrl: 'https://www.facebook.com/100001498612711/posts/28696454786654426/' }, { initial: 'ゆ', name: 'ゆい𝒴𝓊𝒾', attr: '20多歲・上班族', text: '它能有效幫助消化、促進腸道健康,就算天天大魚大肉也不容易堆積負擔', date: '2026.09', color: '#6A1B9A', snsUrl: 'https://www.instagram.com/p/Dd1Vw1Hs6u9/' }, { initial: '織', name: '織羽', attr: '40多歲・上班族', text: '來日本之後,被託買次數最高的就是這一罐——強力わかもと', date: '2026.09', color: '#4527A0', snsUrl: 'https://www.facebook.com/emily.lee.56232/posts/pfbid02vBVxAhSLFhVVupUq9u6cr9NhJTh2Nvg8fJ5ZEp4fWoKkgZ81ZYSdovUyJ5EuuSzSl' } ] }, { id: 35, slug: 'wakamoto-seichoyaku', name: '若元整腸錠(わかもと整腸薬)', brand: 'わかもと製藥', price: 1188, priceNote: '90錠 ¥1,188 / 240錠 ¥2,728', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/09/240_整腸薬箱瓶-のコピー-scaled.jpg', label: 'type-hot', labelText: '話題', plan: 'gold', originalUrl: 'https://www.wakamoto-pharm.co.jp/', tip: '專為腸道環境調節設計的經典日常保養提案。嚴選兩種雙岐桿菌(比菲德氏菌)與兼性厭氧乳酸菌,覆蓋大腸與小腸的不同區域。', tipFull: "指定医薬部外品\n專為腸道環境調節設計的經典日常保養提案。嚴選兩種雙岐桿菌(比菲德氏菌)與兼性厭氧乳酸菌,能覆蓋大腸與小腸的不同區域,溫和無負擔的配方適合每日腸道保養。\n\n
📋 販售名稱 わかもと整腸薬
📦 規格・價格\u3000錠劑 90錠 ¥1,188/錠劑 240錠 ¥2,728
🏷 醫藥分類 指定医薬部外品
✅ 適應症 整腸(通便)、軟便、便祕、腹部膨滿感
💊 用法用量 1日3次,於餐後30分鐘內搭配開水或溫水服用。15歲以上:1次2錠/5歲以上未滿15歲:1次1錠/未滿5歲:不宜服用
\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。", column: 'https://www.japankuru.com/tw/shopping/298041/', hasVideo: true, videoId: 'XjNLyOY3txE', voiceCount: 5, voices: [ { initial: '小', name: '小沢 俊', attr: '30多歲・上班族', text: '裡面含有3種乳酸菌,專門針對調整腸道狀況、改善便秘或軟便等排便困擾。', date: '2026.09', color: '#E91E63', snsUrl: 'https://www.instagram.com/p/DdF_OvYHZx2/' }, { initial: '湘', name: '湘談日本生活', attr: '40多歲・上班族', text: '「腸活」不是等到身體不舒服才去處理,而是一種從日常生活中,隨時就應該好好照顧和保養腸道。', date: '2026.09', color: '#795548', snsUrl: 'https://www.instagram.com/p/DdOE5rmmMkE/?img_index=1' }, { initial: 'Ca', name: 'Candice Wang', attr: '40多歲・上班族', text: '腸道裡住著許多不同的細菌,尤其大腸的菌數非常多。小腸與大腸的環境不同,這款產品的配方也特別著重於兩個部位的腸道保養。', date: '2026.09', color: '#00897B', snsUrl: 'https://www.instagram.com/p/DdX7YGhGfMY/' }, { initial: '新', name: '新日一成', attr: '40多歲・自營業', text: '原來WAKAMOTO除了經典商品之外,也有專門的整腸藥。', date: '2026.09', color: '#5E35B1', snsUrl: 'https://www.instagram.com/p/DdehRY1D_p0/?img_index=1' }, /* TODO(わかもと): 下記は台湾との価格比較に言及。掲載可否のご判断待ち */ { initial: '簡', name: '簡才翔', attr: '50多歲・導遊', text: '在購買『強力WAKAMOTO』時,在架上也發現旁邊有一罐一樣有一個大大的紅色W字樣的產品,但尺寸明顯小了很多,仔細一看發現是一罐之前都沒注意到的『WAKAMOTO整腸藥』。', date: '2026.09', color: '#3F51B5', snsUrl: 'https://www.facebook.com/story.php?story_fbid=38349247254721647&id=100001895532837' } ] }, { id: 40, slug: 'pastime-lx81-premium', name: 'Pastime LX 8.1 Premium(パスタイムLX8.1プレミアム)', brand: '祐德藥品工業', price: 2508, priceNote: '21枚 ¥2,508', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/09/YOTOKU09.png', label: 'type-hot', labelText: '話題', plan: 'platinum', originalUrl: 'https://qrtranslator.com/0000009056/000001', tip: '日本藥妝店熱銷的醫療級消炎止痛貼布。採用OTC最高劑量8.1%洛索洛芬鈉水合物,經皮吸收發揮持久的鎮痛消炎效果。', tipFull: "第2類医薬品\n日本藥妝店熱銷的醫療級消炎止痛貼布。採用OTC最高劑量8.1%洛索洛芬鈉水合物,經皮吸收發揮持久的鎮痛消炎效果,專為嚴重腰痛、肩頸僵硬及關節肌肉痠痛設計。承襲70年OK繃老廠的極致貼附技術,貼布柔軟有彈性,撕除時滑順不拉扯肌膚。無外盒的環保夾鏈袋包裝方便隨身攜帶與收納。\n\n
📋 販售名稱 パスタイムLX8.1プレミアム
🏷 醫藥分類 第2類医薬品
✅ 適應症 腰痛、肩膀僵硬引起的肩膀疼痛、關節痛、肌肉痛(肌肉痠痛)、腱鞘炎(手部與手腕疼痛)、手肘疼痛(網球肘等)、撞傷、扭傷
💊 用法用量 15歲以上:1次1〜4片/1日1次  未滿15歲:不宜使用
\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。", column: 'https://www.japankuru.com/tw/shopping/297711/', hasVideo: true, videoId: 'rULEOF3sykA', voiceCount: 10, voices: [ { initial: '王', name: '王佳勻', attr: '30多歲・上班族', text: '所以最近開始使用「パスタイムLX8.1 PREMIUM」,想說讓每天辛苦的身體多一點照顧', date: '2026.09', color: '#C62828', snsUrl: 'https://www.facebook.com/story.php?story_fbid=28851066651152305&id=100000270611034' }, { initial: '好', name: '好日子', attr: '30多歲・家庭主婦', text: '這幾天為了一郎班上活動瘋狂摺紙,摺到手腕痠、肩膀僵,趕快貼上這片救急。', date: '2026.09', color: '#EF6C00', snsUrl: 'https://www.facebook.com/100063674015416/posts/1710460664419718/' }, { initial: 'K', name: 'Kelly Lau', attr: '20多歲・上班族', text: '上班久坐很容易腰痛,前陣子試了這包日本貼布 Pastime LX 8.1 Premium,效果真的有驚艷到我', date: '2026.09', color: '#00838F', snsUrl: 'https://www.facebook.com/story.php?story_fbid=28529820839981762&id=100001416789118' }, { initial: '呂', name: '呂家霖', attr: '20多歲・上班族', text: '實際使用下來,我覺得這款貼布最大的特色不是刺激感特別強,而是在貼合度、舒適度和配方之間取得不錯的平衡。', date: '2026.09', color: '#4527A0', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid02yMj75igcRi6nBekbeS7t7fa4NSWwqbNyU1qGE9XEogrmMMDDRWuurZciYrJRtcG3l&id=100002592325431' }, { initial: '均', name: '均媽與熙正媽媽', attr: '40多歲・家庭主婦', text: '貼布容易撕開,柔軟有彈力而且非常貼服,就算自己都可以輕鬆貼上肩部及腰部。', date: '2026.09', color: '#AD1457', snsUrl: 'https://www.instagram.com/heichingmama_e/' }, { initial: 'C', name: 'Chiu-wei Liu', attr: '30多歲・上班族', text: '結果起床發現真的好改善很多,太神奇了!決定今天晚上肩膀也要貼看看', date: '2026.09', color: '#00695C', snsUrl: 'https://www.facebook.com/chiuwei.liu/posts/pfbid0x44C9NYUV8rXJ5fHrbfpB3aWMqpy8A6i4TxZRBFbvXKu3eJQJJ9KMGNuHs1AGAbHl' }, { initial: 'B', name: 'BBQ in Japan', attr: '40多歲・自營業', text: '上次跑馬帶了酸痛貼布去貼,覺得真的有讓酸痛比較緩和後,開始有事沒事的酸痛就來貼個一片', date: '2026.09', color: '#5D4037', snsUrl: 'https://www.facebook.com/BBQinJP/posts/pfbid0TVZEL55q8un5CBofAViJfbfbbV8LhEyJLSQCLdT9WyCZY5e9TSnEyKgJRPhMa2W5l' }, { initial: '李', name: '李映宣', attr: '20多歲・上班族', text: 'Pastime LX 8.1 Premium 是我覺得很適合放在身邊備用的一款貼布。', date: '2026.09', color: '#6A1B9A', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid02LqPVGDSazQVSzvgbTzUAevGHFbHKrGHqKm2NoMcsrhaJfuRFasu1YjbyohDdA8wkl&id=100001498612711' }, { initial: 'p', name: 'purple', attr: '30多歲・上班族', text: '整體用起來蠻好的,酸痛時貼,隔天肩膀比較不那麼沈重', date: '2026.09', color: '#7B1FA2', snsUrl: 'https://www.instagram.com/p/DdNcyBiGThO/?img_index=1' }, { initial: 'H', name: 'Hikomi ∥ 你說生活是:', attr: '30多歲・上班族', text: '最近喜歡到巴不得買來當常備藥的貼布是Pastime LX 8.1 Premium!', date: '2026.09', color: '#283593', snsUrl: 'https://www.instagram.com/p/Ddy4Wwzj_We/?img_index=1' } ] }, { id: 36, slug: 'dhc-cysvita-white-c', name: '紫蘇維他命美白片(シスビタホワイトC)', brand: 'DHC', price: 4290, priceNote: '240錠(成人60日份)¥4,290', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/09/dhc_sisvita_white_c.jpg', label: 'type-hot', labelText: '話題', plan: 'gold', originalUrl: 'https://www.matsukiyococokara-online.com/store/catalog/product/view/id/4511413804377', tip: '日本松本清可開嘉來集團限定!嚴選維生素C 1,000mg(成人1日量)與L-半胱胺酸雙重核心成分。', tipFull: "第3類医薬品\n日本松本清可開嘉來集團限定!嚴選維生素C 1,000mg(成人1日量)與L-半胱胺酸雙重核心成分,搭配維生素E、B₂、B₆與泛酸鈣。從根本抑制黑色素生成、緩和斑點與雀斑。適合給想在護理斑點與雀斑的同時,也能補充維生素C者的醫藥品。\n\n
📋 販售名稱 シスビタホワイトC
🏷 醫藥分類 第3類医薬品
✅ 適應症 緩解下列各種症狀:斑點、雀斑、曬傷或皮膚炎引起的色素沉著/預防下列情況的出血:牙齦出血、鼻出血/下列情況下的維生素C補充:肉體疲勞時、懷孕及哺乳期、患病中或病後體力下降時、老年期
💊 用法用量 1日2次,於餐前或餐後服用。15歲以上:1次2錠/7歲以上未滿15歲:1次1錠/未滿7歲:不宜服用
\n※ 若使用約1個月後症狀仍未改善,請諮詢醫師、藥劑師或牙醫師。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。", column: 'https://www.japankuru.com/tw/shopping/299474/', hasVideo: true, videoId: 'xr-n-Xq8oHE', /* TODO(DHC): KOC5名のレビュー未着(10月予定) */ voiceCount: 0, voices: [] }, { id: 38, slug: 'bufferin-premium-dx-quick-plus', name: 'BUFFERIN PREMIUM DX Quick+(バファリンプレミアムDXクイック+)', brand: 'BUFFERIN', price: 2508, priceNote: '60錠 ¥2,508', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/10/bufferin-premium-dx60png.png', visualImage: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/09/LION-BP01-3.jpeg', // 動画なしプラン:詳細モーダル用 label: 'type-hot', labelText: '日本限定', plan: 'gold', originalUrl: 'https://www.bufferin.net/ch/t/', tip: '日本限定的解熱鎮痛藥。布洛芬與乙醯胺酚 1:1 雙重配方,搭配速崩・速溶的Quick Attack錠。', tipFull: "指定第2類医薬品\n日本限定的系列解熱鎮痛藥,嚴選布洛芬與乙醯胺酚 1:1 雙重配方,配合速崩・速溶技術的Quick Attack錠。添加乾燥氫氧化鋁凝膠護胃成分,無添加會導致嗜睡的成分。9.2mm易於吞服的小錠劑薄膜衣錠,追求效果與速度的解熱鎮痛藥。\n\n
📋 販售名稱 バファリンプレミアムDX+
🏷 醫藥分類 指定第2類医薬品
✅ 適應症 (1) 頭痛、肩頸痠痛、月經痛(生理痛)、腰痛、關節痛、神經痛、肌肉痛、咽喉痛、牙痛、拔牙後疼痛、跌傷(挫傷)痛、扭傷痛、骨折痛、外傷痛、耳痛之鎮痛 (2) 畏寒、發燒時的退燒
💊 用法用量 15歲以上:1次2錠/1日2次。未滿15歲:不宜服用。服用2次後仍疼痛時可服用第3次,但須間隔4小時以上,並避免空腹服用。
\n※ 本品不含鎮靜成分「AIAU(丙烯異丙基乙酰尿)」。\n※ 預產期12週內的孕婦不得服用,服藥前後禁止飲酒。\n※ 過敏體質者請先洽詢藥劑師或登錄販賣者。\n※ 本藥品為指定第2類医薬品,請向藥劑師或登錄販賣者諮詢後,詳閱「使用注意事項」再行使用。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。", column: 'https://www.japankuru.com/tw/shopping/300671/', hasVideo: false, videoId: '', voiceCount: 0, voices: [] } ] }, health: { title: '健康食品・食品', products: [ { id: 22, slug: 'naishidown-visceral-fat', name: 'NAISHI-DOWN減脂錠', brand: '井藤漢方製藥', price: 1980, priceNote: '60粒 ¥1,980', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/naishidown-ito-kampo-visceral-fat-supplement.jpg', label: 'type-hot', labelText: '話題', plan: 'gold', originalUrl: 'https://www.itohkampo.co.jp/products/101140039.html', tip: '井藤漢方「NAISHI-DOWN減脂錠」為一款採用黑薑由來多甲氧基黃酮(PMF)為關鍵成分的日本機能性表示食品。具備有助於BMI偏高者輔助減少腹部脂肪的機能性。', tipFull: '井藤漢方「NAISHI-DOWN減脂錠」為一款採用黑薑由來多甲氧基黃酮(PMF)為關鍵成分的日本機能性表示食品。黑薑由來的多甲氧基黃酮,在日本有研究報告指出,具備「有助於BMI偏高者輔助減少腹部脂肪(包含內臟脂肪與皮下脂肪)」的機能性。同時,也有報告指出在日常生活的基礎能量代謝下,幫助脂肪更有效率被消耗。每日建議攝取兩粒。草本氣味較弱,適合作為飲食控制期間的日常代謝輔助選擇。', column: 'https://www.japankuru.com/tw/shopping/263542/', hasVideo: true, videoId: 'i2f4VD2aeVs', voices: [ { initial: '新', name: '新日一成', attr: '40多歲・個人創業者', text: '對像我這種 BMI大概24以上、開始擔心肚子越來越大的中年族群,確實會比較有感覺', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.facebook.com/hu.wei.7/posts/pfbid0XzgFB6A6q2rUkE7rXSBuYYYN7fYZvNWYqojqrp25jnsSkjhNXPV67cYKVYvtE8HYl' }, { initial: 'K', name: 'Kobayashi Celine', attr: '40多歲・自由工作者', text: '很適合BMI24以上未滿30,在意體態與健康數值的人。', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.instagram.com/p/DV7X9uzD5uq/?igsh=MWgwa2p4OHZwMWhtNA%3D%3D&img_index=1' }, { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: '這款在日本藥妝店一直很有討論度的內脂輕,真的很適合像我們這種生活忙碌、沒時間(懶得)運動的人', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DV5MsQwkjrK/?img_index=1' }, { initial: 'A', name: 'Aya Mikazuki', attr: '30多歲・上班族', text: '最近開始更在意體態跟健康數值,發現其實「日常生活」也可以成為管理的一部分', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/vminqi/posts/pfbid021mkEcYvhezJeCkuCabH8mm2jCSbRxoLx3wBZU6tkNU5nfCoGXK77yDh8f3QbNoRql' }, { initial: '優', name: '優妮帶你遊大阪不踩雷', attr: '30多歲・上班族', text: '2月跟妹妹暢遊九州一路大吃,回到日常照鏡子,我真的開始在意腹部線條+健康數值…所以最近把井藤漢方製藥內脂輕加進我的日常保養清單。', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DVU_IsDkh7a/?img_index=1' } ], voiceCount: 5 }, { id: 24, slug: 'lipovitan-dx', name: '力保美達DX(リポビタンDX)', brand: '大正製藥', price: 1650, priceNote: '30錠 ¥1,650 / 90錠 ¥4,268 / 180錠 ¥6,468 / 270錠 ¥8,668', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/lipovitan-dx-man-holding-window.jpg', label: 'type-hot', labelText: '話題', plan: 'basic', originalUrl: 'https://www.taisho-direct.jp/simages/lp/adfm/LDXA.html', tip: '大正製藥-Lipovitan力保美達DX,日本元氣補充飲的錠劑版本。含牛磺酸500mg+維生素B群+助眠胺基酸「甘胺酸」,抗疲勞同時輔助改善淺眠等狀況。指定医薬部外品。', tipFull: '日本元氣補充飲系列的錠劑版本。改善疲勞同時兼顧睡眠情況。\n\n誕生於1960年代的力保美達,堪稱是日本元氣補充飲的先鋒,至今仍有許多日本上班族習慣「喝了再上」。力保美達的靈魂核心成分「牛磺酸」是胺基酸的一種,廣為人知的消除疲勞作用成分。\n\n錠劑版本的「力保美達DX」,是近幾年異軍突起的抗疲B群人氣新選擇。每日建議攝取的3粒當中,不僅含有500毫克的牛磺酸和維生素B群,還搭配助眠系胺基酸「甘胺酸」,超級適合忙碌的現代人用來抵抗疲勞,同時輔助隨年齡增加而出現的難以入睡、淺眠或不易醒來等狀況。\n\n名稱:LIPOVITAN DX\n醫藥分類:指定医薬部外品\n效能、效果:恢復及預防疲勞/改善難以入睡・淺睡・難以睡醒/維持及改善體力、身體抵抗力及集中力\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', tipFull: '誕生於1960年代的力保美達,堪稱是日本元氣補充飲的先鋒,至今仍有許多日本上班族習慣「喝了再上」。力保美達的靈魂核心成分「牛磺酸」是胺基酸的一種,廣為人知的消除疲勞作用成分。\n錠劑版本的「力保美達DX」,是近幾年異軍突起的抗疲B群人氣新選擇。每日建議攝取的3粒當中,不僅含有500毫克的牛磺酸和維生素B群,還搭配助眠系胺基酸「甘胺酸」,超級適合忙碌的現代人用來抵抗疲勞,同時輔助隨年齡增加而出現的難以入睡、淺眠或不易醒來等狀況。\n\n名稱:LIPOVITAN DX\n醫藥分類:指定医薬部外品\n效能、效果:恢復及預防疲勞/改善難以入睡・淺睡・難以睡醒/維持及改善體力、身體抵抗力及集中力\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: null, hasVideo: false, voices: [ { initial: '林', name: '林桑的日本遊記', attr: '40多歲・上班族', text: '這款是日本大正製藥的產品,在日本藥妝店其實滿常看到的!', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.instagram.com/p/DV54EL0EuHH/?img_index=1' }, { initial: '優', name: '優妮帶你遊大阪不踩雷', attr: '30多歲・上班族', text: '它沒咖啡因,加上睡眠支持成分グリシン、以及生藥シゴカ,所以我最常是「晚餐後~睡前」那段時間吃', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.instagram.com/p/DVU6niYEi4V/?img_index=1' }, { initial: '劉', name: '劉采蓉', attr: '30多歲・留學生', text: '我自己是在覺得有點累、或是壓力比較大、比較忙的時候會吃', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.facebook.com/teresa.liu.1293/posts/pfbid0zpGbKmihEmwSD4TSVE6Cqi7Zmb8hGt3nf36QMmoF3UAwRM92Z6ZSFtaTNyAZvpBql' }, { initial: 'S', name: 'Shanyu Lin', attr: '40多歲・家庭主婦', text: '同時改善睡眠問題,感覺根本就是我現在狀況設計的救星。', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/sacuralin/posts/pfbid02dJYFqBrcUBvnDoey24oD1prWWecrBedDWbEGYtZuSxPzQYfqNbwEBt5CggoRYiNLl' }, { initial: 'P', name: 'purple', attr: '30多歲・上班族', text: '我自己蠻喜歡的一點是它沒有咖啡因☕️❌ 所以就算是睡前也可以吃,不用擔心影響睡眠。', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DV8K6MombB5/?img_index=1' } ], voiceCount: 5 } ] }, daily: { title: '日用品', products: [ { id: 30, slug: 'pelack-t-throat', name: 'PELACK-T喉嚨消炎錠a', brand: '第一三共', price: 1430, priceNote: '18錠 ¥1,430 / 36錠 ¥2,640 / 54錠 ¥3,410', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/pelack-T3.png', label: 'type-exclusive', labelText: '日本限定', plan: 'gold', originalUrl: 'https://www.daiichisankyo-hc.co.jp/site_pelack/', tip: 'PELACK-T喉嚨消炎錠a為日本第三類醫藥品,主成分傳明酸(Tranexamic Acid)可透過抑制纖維蛋白溶解反應,降低發炎相關物質活性,協助改善喉嚨紅腫與疼痛不適。建議於症狀初期使用,有助於控制不適感。除喉嚨疼痛外,也可作為口內炎期間的輔助對症用藥。', tipFull: 'PELACK-T喉嚨消炎錠a為日本第三類醫藥品,主成分傳明酸(Tranexamic Acid)可透過抑制纖維蛋白溶解反應,降低發炎相關物質活性,協助改善喉嚨紅腫與疼痛不適。建議於症狀初期使用,有助於控制不適感。除喉嚨疼痛外,也可作為口內炎期間的輔助對症用藥。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: 'https://www.japankuru.com/tw/shopping/264456/', hasVideo: true, videoId: '41SH1U8NWH8', voices: [ { initial: '劉', name: '劉采蓉', attr: '30多歲・留學生', text: '對於需要長時間講話、或是喉嚨容易反覆不舒服的人來說,真的蠻實用的', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/teresa.liu.1293/posts/pfbid0givUT7EP7QLWkFTW4e8aQ8696Ms1PNvEARQnds9WnbFMBFrai6upXhQhSZ9SVvRl' }, { initial: '青', name: '青醬的日本小確幸', attr: '40多歲・上班族', text: '這款在日本算是知名度很高的喉嚨藥,很多人只要覺得「喉嚨怪怪的」,就會先吃。', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.facebook.com/chinchaninjp/posts/pfbid0Gy5KviNi4fT48Ghew3NemnGabWbLFN3C1cKZd7HviUSMeL79VekTyx2FsAx79diQl' }, { initial: 'H', name: 'HimiKo', attr: '20多歲・自由工作者', text: '是許多需要頻繁用嗓音工作者的護身符♪', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.instagram.com/p/DWE8pMTAXn2/?img_index=1' }, { initial: 'W', name: 'Wei Wei', attr: '30多歲・上班族', text: '這款在旅遊圈被封為「喉嚨痛神藥」真的不是開玩笑', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid034dxkuKTKXHqMpSkihYcV9hbU8YzV37nnmfs1nsUW64L46kX46p8ey49hL32Bk7ttl&id=100001466739903' }, { initial: 'フ', name: 'ファン ナwナ', attr: '40多歲・上班族', text: '不含容易讓人想睡的成分,白天要上班或外出時吃也比較安心', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DVnbtNcEqMS/?igsh=MXRpdWRieTcwenl5cg%3D%3D' }, { initial: 'Y', name: 'Yu Shan', attr: '40多歲・上班族', text: '最近喉嚨乾乾又有點痛,吃了之後真的有明顯緩解', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DWOOZVokVXZ/?img_index=1' }, { initial: '呂', name: '呂明怡', attr: '20多歲・上班族', text: '有時候換季、講話太多,或是感覺喉嚨開始乾乾痛痛的時候,我就會想到它', date: '2026.03', color: '#795548', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0MdUXQAhgKAhCgtc6D3bd9f7GFxa3dfeBbMr5GXZAgAKrMCgYpyt6hit7T6oM8AFNl&id=100002589505586' }, { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: '如果有喉嚨不舒服或容易嘴破的困擾,有來日本逛藥妝時也可以參考看看', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.instagram.com/p/DVsxPd6kgIF/' }, { initial: 'B', name: 'BBQ in Japan', attr: '40多歲・個人創業者', text: '不知道實際效果如果,下次喉嚨開始不妙時來試看看', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.facebook.com/BBQinJP/posts/pfbid0UiDRZdu9kTD6LVtCSYMPKVCnWXPXCfWder2vnN25Dj1kWk5CMfeQgwFHFAhSkiUZl' }, { initial: '廖', name: '廖小白', attr: '40多歲・上班族', text: '有時候口腔破,除了貼布,直接口服是比較快的', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/100000142974546/posts/27152243391030393/?mibextid=wwXIfr&rdid=xdupk6r98viWkSGw#' } ], voiceCount: 10 }, { id: 31, slug: 'traful-mouth-patch', name: 'TRAFUL口內炎貼片a', brand: '第一三共', price: 1485, priceNote: '12片 ¥1,485 / 24片 ¥2,200', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/81rSZNyHgL._AC_SY879_.jpg', label: 'type-hot', labelText: '話題', plan: 'gold', originalUrl: 'https://www.daiichisankyo-hc.co.jp/site_traful/', tip: '第一三共HealthCare「TRAFUL口內炎貼片a」為日本熱銷對症用藥,專為復發性口內炎設計。0.16mm極薄貼片可直接貼附患部形成保護層,減少摩擦刺激,並釋放主要成分曲安奈德。約30~60分鐘自然溶解,無須撕除。輕巧好攜帶,適合復發性口內炎(嘴破)時備用。', tipFull: '第一三共HealthCare「TRAFUL口內炎貼片a」為日本熱銷對症用藥,專為復發性口內炎設計。0.16mm極薄貼片可直接貼附患部形成保護層,減少摩擦刺激,並釋放主要成分曲安奈德。約30~60分鐘自然溶解,無須撕除。輕巧好攜帶,適合復發性口內炎(嘴破)時備用。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: 'https://www.japankuru.com/tw/shopping/264744/', hasVideo: true, videoId: 'b3h2Ybw2BW4', voices: [ { initial: '呂', name: '呂明怡', attr: '20多歲・上班族', text: 'Traful 的口內炎貼片,會慢慢自己溶解,不需要特別撕下來', date: '2026.03', color: '#795548', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0MdUXQAhgKAhCgtc6D3bd9f7GFxa3dfeBbMr5GXZAgAKrMCgYpyt6hit7T6oM8AFNl&id=100002589505586' }, { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: '以前都用塗藥的方式,改用這款之後只要貼一下就好~', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.instagram.com/p/DVsxPd6kgIF/' }, { initial: 'H', name: 'HimiKo', attr: '20多歲・自由工作者', text: '貼上後大約30分~1小時就會自動溶解在口中,非常方便!', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.instagram.com/p/DWE8pMTAXn2/?img_index=1' }, { initial: 'W', name: 'Wei Wei', attr: '30多歲・上班族', text: '最方便的是它貼上去後會慢慢融化,不用擔心還要撕下來', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid034dxkuKTKXHqMpSkihYcV9hbU8YzV37nnmfs1nsUW64L46kX46p8ey49hL32Bk7ttl&id=100001466739903' }, { initial: 'フ', name: 'ファン ナwナ', attr: '40多歲・上班族', text: '貼片薄薄一片貼在患處,幾乎沒有什麼存在感', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DVnbtNcEqMS/?igsh=MXRpdWRieTcwenl5cg%3D%3D' }, { initial: '劉', name: '劉采蓉', attr: '30多歲・留學生', text: '口內炎吃東西會痛、講話會摩擦到,真的很困擾的時候,這種貼片型產品就很方便。', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/teresa.liu.1293/posts/pfbid0givUT7EP7QLWkFTW4e8aQ8696Ms1PNvEARQnds9WnbFMBFrai6upXhQhSZ9SVvRl' }, { initial: 'Y', name: 'Yu Shan', attr: '40多歲・上班族', text: '貼片型真的超方便,貼上後會慢慢溶解,不需要一直撕來撕去', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DWOOZVokVXZ/?img_index=1' }, { initial: '青', name: '青醬的日本小確幸', attr: '40多歲・上班族', text: '一累就嘴破、或很容易咬到自己的人,這款真的可以先筆記。', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.facebook.com/chinchaninjp/posts/pfbid0Gy5KviNi4fT48Ghew3NemnGabWbLFN3C1cKZd7HviUSMeL79VekTyx2FsAx79diQl' }, { initial: 'B', name: 'BBQ in Japan', attr: '40多歲・個人創業者', text: '好處是會溶於你口,不用怕睡一覺起來後發現吞下去了!', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.facebook.com/BBQinJP/posts/pfbid0UiDRZdu9kTD6LVtCSYMPKVCnWXPXCfWder2vnN25Dj1kWk5CMfeQgwFHFAhSkiUZl' }, { initial: '廖', name: '廖小白', attr: '40多歲・上班族', text: '有這個口內炎貼布,貼著吃東西,完全可以放心吃', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/100000142974546/posts/27152243391030393/?mibextid=wwXIfr&rdid=xdupk6r98viWkSGw#' } ], voiceCount: 10 }, { id: 32, slug: 'loxonin-ex-tape', name: 'LOXONIN樂松EX貼布(ロキソニンEXテープ)', brand: '第一三共', price: 1408, priceNote: '7片 ¥1,408 / 14片 ¥2,178 / 21片 ¥2,948', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/loxonin_portrait_under_1mb.jpg', label: 'type-exclusive', labelText: '日本限定', plan: 'gold', originalUrl: 'https://www.daiichisankyo-hc.co.jp/site_loxonin-s/gaiyou/', tip: '樂松EX貼布,日本製藥大廠研發,含洛索洛芬鈉水合物8.1%,為系列最高濃度。適用於腰痛、肩頸痠痛、關節痛與肌肉拉傷等不適。貼布輕薄服貼、不易脫落,並添加維生素E與L-薄荷醇,使用方便。請依說明書指示正確使用。', tipFull: '樂松EX貼布,日本製藥大廠研發,含洛索洛芬鈉水合物8.1%,為系列最高濃度。適用於腰痛、肩頸痠痛、關節痛與肌肉拉傷等不適。貼布輕薄服貼、不易脫落,並添加維生素E與L-薄荷醇,使用方便。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: 'https://www.japankuru.com/tw/shopping/264791/', hasVideo: false, voices: [ { initial: 'Y', name: 'Yu Shan', attr: '40多歲・上班族', text: '這款是醫療級的痠痛貼布,止痛成分濃度高,貼上後真的很有感', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DWONsWREfDX/?img_index=1' }, { initial: '廖', name: '廖小白', attr: '40多歲・上班族', text: '日本同事挫傷去醫院,醫師就是開Loxonin EX貼布給他!', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0uAxutCadifhTYW45h7LF21gZMF5vZ62HXLQA3W8WgpKivAEgGRXpQgrr58q8Hpwbl&id=100000142974546' }, { initial: 'H', name: 'HimiKo', attr: '20多歲・自由工作者', text: '含有與處方藥同級的止痛成分洛索洛芬鈉,針對肩膀僵硬、腰痛、小腿痠痛效果極佳', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.instagram.com/p/DWCQnXmga10/?img_index=1' }, { initial: 'W', name: 'Wei Wei', attr: '30多歲・上班族', text: '自己覺得蠻不錯的一點是,它的味道其實很淡,不像有些痠痛貼布會有很重的藥味', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid02W2fKVWxL1xEHaqVpP2WxbGK8gBtyao18quDnkhzqBjxpfpVLkSfbpPJfAMSaAUr5l&id=100001466739903' }, { initial: 'フ', name: 'ファン ナwナ', attr: '40多歲・上班族', text: '貼著活動時比較不會有很明顯的存在感,難怪在日本一直都很受歡迎', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DVnWrIfEuNa/' }, { initial: '劉', name: '劉采蓉', attr: '30多歲・留學生', text: '由第一三共研發,原本就是醫院臨床使用的成分,因此效果一直很受到信賴', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/teresa.liu.1293/posts/pfbid02og544RVfHZ3gCtWegjLraKU2a2DgqECWK7tFsTUsZTdjYG7rVX4qtxRioFtwNG6Ql' }, { initial: '呂', name: '呂明怡', attr: '20多歲・上班族', text: '貼布本身也蠻薄的,黏性剛剛好,睡覺貼著也不太會掉', date: '2026.03', color: '#795548', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0dQsg4vtbufWayhw173kesuvpV24NLheJWj8YucaZJFZHJNZ69phetJYo7jfctadol&id=100002589505586' }, { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: '像我平常如果有腰酸、肩頸不舒服,就會貼一下放鬆舒緩', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.instagram.com/p/DVsqd7Xklwp/' }, { initial: '青', name: '青醬的日本小確幸', attr: '40多歲・上班族', text: '去年因為手腕關節炎去醫院治療,那時醫生開給我的貼布就是這家品牌', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.facebook.com/chinchaninjp/posts/1719113232402175?ref=embed_post' }, { initial: 'B', name: 'BBQ in Japan', attr: '40多歲・個人創業者', text: '這個成分的貼布能真正的抑制深層的酸痛,並且不會涼到睡不著', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.facebook.com/BBQinJP/posts/pfbid08dhyHMXChtkoue5gsoxytadiTidvCcHCeK2kGTsA82uxWMsHvtF1kigX1XTNDUh6l' } ], voiceCount: 10 }, { id: 33, slug: 'transino-white-c-premium', name: '傳皙諾TRANSINO WHITE C PREMIUM(トランシーノホワイトCプレミアム)', brand: '第一三共', price: 2310, priceNote: '90錠 ¥2,310 / 180錠 ¥3,520 / 270錠 ¥4,840', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/01-Transino-white-C-premium-0318-scaled.jpg', label: 'type-hot', labelText: '話題', plan: 'gold', originalUrl: 'https://www.daiichisankyo-hc.co.jp/site_transino/', tip: '傳皙諾TRANSINO WHITE C PREMIUM是日本人氣美白錠,主打 L-半胱胺酸與維生素C 雙核心成分,搭配五種美肌支持維生素,輔助抑制黑色素、協助促進肌膚代謝與抗氧化。適合想改善斑點、雀斑及日曬色素沉澱者,每日依指示服用,搭配日常保養,成為美肌輕鬆補給的好選擇。', tipFull: '傳皙諾TRANSINO WHITE C PREMIUM是日本人氣美白錠,主打 L-半胱胺酸與維生素C 雙核心成分,搭配五種美肌支持維生素,輔助抑制黑色素、協助促進肌膚代謝與抗氧化。適合想改善斑點、雀斑及日曬色素沉澱者,每日依指示服用,搭配日常保養,成為美肌輕鬆補給的好選擇。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: 'https://www.japankuru.com/tw/shopping/264796/', hasVideo: false, voices: [ { initial: 'フ', name: 'ファン ナwナ', attr: '40多歲・上班族', text: '這系列在日本真的很常看到,不只是觀光客會買,其實很多日本人也會長期補充', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DVnWrIfEuNa/' }, { initial: '劉', name: '劉采蓉', attr: '30多歲・留學生', text: '如果平常有在關注日本藥妝的人,應該對這款不陌生。', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/teresa.liu.1293/posts/pfbid02og544RVfHZ3gCtWegjLraKU2a2DgqECWK7tFsTUsZTdjYG7rVX4qtxRioFtwNG6Ql' }, { initial: 'H', name: 'HimiKo', attr: '20多歲・自由工作者', text: '如果想要擁有日本女生那種透明感肌膚,除了外擦,平時內服的補給保養也是關鍵!', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.instagram.com/p/DWCQnXmga10/?img_index=1' }, { initial: 'W', name: 'Wei Wei', attr: '30多歲・上班族', text: '由內而外的調理也很重要。這款算是日本開架美白錠裡面比較高階的版本', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid02W2fKVWxL1xEHaqVpP2WxbGK8gBtyao18quDnkhzqBjxpfpVLkSfbpPJfAMSaAUr5l&id=100001466739903' }, { initial: 'Y', name: 'Yu Shan', attr: '40多歲・上班族', text: '它含有日本醫藥級、最高規格的L-半胱胺酸(240mg),再加上2000mg的維他命C', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DWONsWREfDX/?img_index=1' }, { initial: '呂', name: '呂明怡', attr: '20多歲・上班族', text: '這款在日本算是很有名的美白維他命,維生素C含量很高', date: '2026.03', color: '#795548', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0dQsg4vtbufWayhw173kesuvpV24NLheJWj8YucaZJFZHJNZ69phetJYo7jfctadol&id=100002589505586' }, { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: '這款美白錠在日本很有人氣!是日本知名製藥公司第一三共的品牌', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.instagram.com/p/DVsqd7Xklwp/' }, { initial: '青', name: '青醬的日本小確幸', attr: '40多歲・上班族', text: '這款也是日本藥妝店很常看到的熱銷商品', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.facebook.com/chinchaninjp/posts/1719113232402175?ref=embed_post' }, { initial: 'B', name: 'BBQ in Japan', attr: '40多歲・個人創業者', text: '效果怎樣我不太清楚,不過有買過的老婆覺得效果還可以', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.facebook.com/BBQinJP/posts/pfbid08dhyHMXChtkoue5gsoxytadiTidvCcHCeK2kGTsA82uxWMsHvtF1kigX1XTNDUh6l' }, { initial: '廖', name: '廖小白', attr: '40多歲・上班族', text: '第一三共是日本藥妝大公司,對於日常生活所需的產品非常重視', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0uAxutCadifhTYW45h7LF21gZMF5vZ62HXLQA3W8WgpKivAEgGRXpQgrr58q8Hpwbl&id=100000142974546' } ], voiceCount: 10 } ] } }; let myList = JSON.parse(localStorage.getItem('cheGuide2026') || '[]'); let currentTab = 'cosme'; function renderTabs() { const container = document.getElementById('tabContents'); if (!container) return; // 카테고리 레이아웃으로 교체됨 container.innerHTML = ''; Object.keys(tabData).forEach(function(key) { const data = tabData[key]; const isActive = key === currentTab; let productsHtml = data.products.map(function(p) { return renderProduct(p); }).join(''); container.innerHTML += '
' + productsHtml + '
'; }); } function renderProduct(p) { const isInList = myList.includes(p.id); const isBasicPlan = p.plan === 'basic'; let avatars = ''; if (p.voices) { avatars = p.voices.slice(0, 5).map(function(v) { return '' + v.initial + ''; }).join(''); } const hasVideoClass = p.hasVideo ? 'item-thumb-video' : ''; const videoOverlay = p.hasVideo ? '
觀看影片
' : ''; const basicPlanClass = ''; let html = '
'; html += '
'; html += '' + plainName(p.name) + ''; if (p.label) html += '' + p.labelText + ''; html += videoOverlay; html += '
'; if (p.hasVideo) html += ' 影片'; if (p.column) html += ' 文章'; html += '
'; html += ''; html += '
'; html += '
'; html += '

' + p.name + '

'; html += '
¥' + p.price.toLocaleString() + ''; if (p.labelText) html += '' + p.labelText + ''; html += '
'; html += '
'; html += '
'; html += ''; html += '
鄭世彬日本藥粧研究家
'; html += '
'; html += '

' + (p.tipFull || p.tip) + '

'; html += '
'; // Column preview for plans with column (standard, gold, platinum) if (p.column) { html += ''; html += '世彬老師專欄'; html += '「' + p.name + '」徹底評測!'; html += '›'; html += ''; // Voice preview for plans with column - show 2 reviews on card if (p.voices && p.voices.length > 0) { html += '
'; html += '
體驗者心得
'; p.voices.slice(0, 2).forEach(function(v) { html += '
'; html += '
'; html += '
' + v.initial + '
'; html += '' + v.name + ''; html += '' + v.attr + ''; html += '
'; html += '

' + v.text + '

'; html += '
'; }); html += '
'; } } if (p.voices && p.voices.length > 0) { html += '
' + avatars + '
'; html += '體驗評價 ' + p.voiceCount + '則'; html += '
'; } // Original URL link - REMOVED from card, moved to modal html += ''; html += '
'; html += ''; html += '
'; return html; } function getSnsIcon(url) { if (!url) return ''; if (url.includes('instagram.com')) return ''; if (url.includes('facebook.com')) return ''; if (url.includes('twitter.com') || url.includes('x.com')) return ''; if (url.includes('youtube.com')) return ''; if (url.includes('tiktok.com')) return ''; return ''; } function shareItem(title) { if (navigator.share) { navigator.share({ title: title, url: location.href }); } else { navigator.clipboard.writeText(location.href); showToast('已複製連結!'); } } function handleCardClick(id, event) { openDetailModal(id); } function toggleCardExpand(btn, event) { event.stopPropagation(); const card = btn.closest('.card'); card.classList.toggle('expanded'); } function switchTab(tab) { if (!document.querySelector('.tab-btn')) return; currentTab = tab; document.querySelectorAll('.tab-btn').forEach(function(btn) { btn.classList.remove('active'); }); var activeBtn = document.querySelector('[data-tab="' + tab + '"]'); if (activeBtn) activeBtn.classList.add('active'); document.querySelectorAll('.tab-content').forEach(function(content) { content.classList.remove('active'); }); var tabEl = document.getElementById('tab-' + tab); if (tabEl) tabEl.classList.add('active'); } var KAZOKU_LIST_ITEMS = [{"id": 203, "name": "TOFUMEL-A", "image": "https://www.japankuru.com/gld-kanri/data/uploads/2026/06/tofumel.png", "price": 1650, "priceText": "¥1,650", "slug": "kazoku-tomeful", "kazoku": true}, {"id": 201, "name": "大草胃腸散 顆粒(分包)", "image": "https://www.japankuru.com/gld-kanri/data/uploads/2026/06/R5_09376-scaled.jpg", "price": 1400, "priceText": "22包 ¥1,400 / 46包 ¥2,400 / 88包 ¥3,900", "slug": "kazoku-okusa", "kazoku": true}, {"id": 202, "name": "救心膠囊F", "image": "https://www.japankuru.com/gld-kanri/data/uploads/2026/06/capsule-scaled.jpg", "price": 1500, "priceText": "¥1,500", "slug": "kazoku-kyushin", "kazoku": true}, {"id": 204, "name": "百毒下", "image": "https://www.japankuru.com/gld-kanri/data/uploads/2026/06/100-scaled.jpg", "price": 3300, "priceText": "¥3,300", "slug": "kazoku-benpi", "kazoku": true}, {"id": 205, "name": "悠斯晶 I 止癢乳膏", "image": "https://www.japankuru.com/gld-kanri/data/uploads/2026/06/yusukin.jpg", "price": 1540, "priceText": "¥1,540", "slug": "kazoku-yuskin", "kazoku": true}, {"id": 206, "name": "龍角散草本無糖潤喉片", "image": "https://www.japankuru.com/gld-kanri/data/uploads/2026/06/ryukakusan-scaled.jpg", "price": 216, "priceText": "¥216", "slug": "kazoku-ryukakusan", "kazoku": true}]; function getAllProducts() { let all = []; Object.values(tabData).forEach(function(t) { all = all.concat(t.products); }); all = all.concat(KAZOKU_LIST_ITEMS); return all; } /* GA4 LP Product Simple Tracking START */ (function () { var viewedProductIds = {}; var sectionViewed = false; var kazokuModalWrapped = false; var KAZOKU_BRAND_MAP = { 201: { brand: '大草薬品', key: 'okusa' }, 202: { brand: '救心製薬', key: 'kyushin' }, 203: { brand: '福地製薬', key: 'tomeful' }, 204: { brand: '翠松堂製薬', key: 'benpi' }, 205: { brand: 'ユースキン製薬', key: 'yuskin' }, 206: { brand: '龍角散', key: 'ryukakusan' } }; function getProductById(id) { if (typeof getAllProducts !== 'function') return null; var all = getAllProducts(); var product = all.find(function (p) { return String(p.id) === String(id); }); if (!product) return null; var kazokuExtra = KAZOKU_BRAND_MAP[Number(id)] || {}; return { product_id: String(product.id), product_name: plainName(product.name), brand_name: product.brand || kazokuExtra.brand || '', product_slug: product.slug || kazokuExtra.key || '', product_category: product.kazoku ? 'kazoku' : '', is_kazoku: product.kazoku ? 'yes' : 'no' }; } function getKazokuProductByKey(key) { var all = typeof getAllProducts === 'function' ? getAllProducts() : []; var product = all.find(function (p) { return p && p.kazoku && String(p.slug || '') === 'kazoku-' + key; }); if (!product) return null; return getProductById(product.id); } function sendLpProductEvent(eventName, params) { try { if (typeof window.gtag !== 'function') { console.warn('[GA4 LP Product] gtag is not ready:', eventName, params); return; } var eventParams = Object.assign({ page_type: 'japan_shopping_lp', page_language: 'zh-Hant' }, params || {}); window.gtag('event', eventName, eventParams); /* 테스트 확인용 */ console.log('[GA4 LP Product]', eventName, eventParams); } catch (e) { console.warn('[GA4 LP Product] tracking error:', e); } } function wrapKazokuModalOpen() { if (kazokuModalWrapped) return; if (typeof window.openKazokuModal !== 'function') return; var originalOpenKazokuModal = window.openKazokuModal; window.openKazokuModal = function (key) { var result = originalOpenKazokuModal.apply(this, arguments); var trackingProduct = getKazokuProductByKey(key); if (trackingProduct) { window.__lpTrackingCurrentProductId = trackingProduct.product_id; sendLpProductEvent('lp_product_modal_open', Object.assign({}, trackingProduct, { click_type: 'kazoku_modal_open' })); } return result; }; kazokuModalWrapped = true; } window.sendLpProductEvent = sendLpProductEvent; window.getTrackingProductById = getProductById; /* openKazokuModal 함수가 다른 script 블록에 뒤늦게 있어도 안전하게 감싸기 */ wrapKazokuModalOpen(); var kazokuWrapTimer = setInterval(function () { wrapKazokuModalOpen(); if (kazokuModalWrapped) clearInterval(kazokuWrapTimer); }, 50); setTimeout(function () { clearInterval(kazokuWrapTimer); }, 5000); document.addEventListener('DOMContentLoaded', function () { /* 1. 家庭薬コーナー表示 */ var kazokuSection = document.getElementById('kazoku-section'); if (kazokuSection && 'IntersectionObserver' in window) { var sectionObserver = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (sectionViewed) return; if (entry.isIntersecting && entry.intersectionRatio >= 0.5) { sectionViewed = true; sendLpProductEvent('kazoku_section_view', { section_name: 'kazoku', view_type: 'section_view' }); sectionObserver.unobserve(entry.target); } }); }, { threshold: [0.5] }); sectionObserver.observe(kazokuSection); } /* 2. 全商品カード表示 */ if ('IntersectionObserver' in window) { var productObserver = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (!entry.isIntersecting || entry.intersectionRatio < 0.5) return; var card = entry.target; var productId = card.getAttribute('data-id'); var product = getProductById(productId); if (!product || viewedProductIds[productId]) return; viewedProductIds[productId] = true; sendLpProductEvent('lp_product_view', Object.assign({}, product, { view_type: 'product_card_view' })); productObserver.unobserve(card); }); }, { threshold: [0.5] }); document.querySelectorAll('.card[data-id], .item-card[data-id], .kazoku-product-card[data-id]').forEach(function (card) { productObserver.observe(card); }); } /* 3. 全商品カードクリック */ document.querySelectorAll('.card[data-id], .item-card[data-id], .kazoku-product-card[data-id]').forEach(function (card) { card.addEventListener('click', function () { var productId = card.getAttribute('data-id'); var product = getProductById(productId); if (!product) return; window.__lpTrackingCurrentProductId = productId; sendLpProductEvent('lp_product_click', Object.assign({}, product, { click_type: 'product_card_click' })); }); }); /* 4. モーダル内リンククリック */ document.addEventListener('click', function (e) { var link = e.target.closest('a'); if (!link) return; var href = link.getAttribute('href') || ''; if (!href || href === '#') return; var productId = window.__lpTrackingCurrentProductId || ''; /* currentModalId / currentBsId / currentKazokuId can be declared with let in the original LP script, so an external script may not be able to read them from window. Use our own stored product id first, then fall back to the URL product parameter. */ if (!productId) { var params = new URLSearchParams(window.location.search); var productSlug = params.get('product'); if (productSlug && typeof getAllProducts === 'function') { var allProducts = getAllProducts(); var matchedProduct = allProducts.find(function (p) { return p.slug === productSlug; }); if (matchedProduct) { productId = matchedProduct.id; } } } if (!productId) return; var product = getProductById(productId); if (!product) return; var linkType = 'modal_link'; if ( link.id === 'modalOfficialBtn' || link.id === 'bsOfficialBtn' || link.id === 'kzBtnOfficial' || link.textContent.indexOf('官方') >= 0 ) { linkType = 'official_site'; } else if ( link.id === 'modalCta' || link.id === 'bsColumn' || link.id === 'kzBtnArticle' || link.textContent.indexOf('文章') >= 0 ) { linkType = 'related_article'; } else if ( href.indexOf('instagram.com') >= 0 || href.indexOf('facebook.com') >= 0 || href.indexOf('youtube.com') >= 0 ) { linkType = 'sns_post'; } sendLpProductEvent('lp_product_link_click', Object.assign({}, product, { link_url: href, click_type: linkType })); }, true); }); })(); /* GA4 LP Product Simple Tracking END */ function scrollToProduct(id) { // 상품 카드로 스크롤 → 하이라이트 var cardEl = document.querySelector('.card[data-id="' + id + '"]'); if (cardEl) { var offset = 100; var top = cardEl.getBoundingClientRect().top + window.pageYOffset - offset; window.scrollTo({ top: top, behavior: 'smooth' }); // 하이라이트 cardEl.classList.add('card-highlight'); setTimeout(function() { cardEl.classList.remove('card-highlight'); }, 2000); } else { // 카드 없으면 모달 (플레이스홀더 등) openDetailModal(id); } } function openDetailModal(id) { const all = getAllProducts(); const p = all.find(function(x) { return x.id === id; }); if (!p) return; if (typeof sendLpProductEvent === 'function') { var trackingProduct = typeof getTrackingProductById === 'function' ? getTrackingProductById(id) : null; if (trackingProduct) { window.__lpTrackingCurrentProductId = trackingProduct.product_id; sendLpProductEvent('lp_product_modal_open', Object.assign({}, trackingProduct, { click_type: 'modal_open' })); } } // GA4 product click event try { if (typeof gtag === 'function') { gtag('event', 'product_click', { product_id: p.id, product_name: plainName(p.name), product_brand: p.brand || '', product_slug: p.slug || '' }); } } catch(e) {} // Set URL parameter with slug const url = new URL(window.location.href); url.searchParams.set('product', p.slug); try { window.history.replaceState({}, '', url); } catch(e) {} isMobile() ? openBottomSheet(p) : openPcModal(p); } function openPcModal(p) { const modal = document.getElementById('detailModal'); const visual = document.getElementById('modalVisual'); if (p.hasVideo && p.videoId) { visual.classList.add('has-video'); visual.innerHTML = ''; } else { visual.classList.remove('has-video'); visual.innerHTML = '' + plainName(p.name) + ''; } // 카드 앞면 .ci에도 has-video 클래스 토글 const cardEl = document.querySelector('.card[data-id="' + p.id + '"]'); if (cardEl) { const ciEl = cardEl.querySelector('.ci'); if (ciEl) { if (p.hasVideo) ciEl.classList.add('has-video'); else ciEl.classList.remove('has-video'); } } document.getElementById('modalName').innerHTML = p.name; var _pe = document.getElementById('modalPrice'); if (p.price) { _pe.textContent = '¥' + p.price.toLocaleString(); _pe.style.display = ''; } else { _pe.textContent = ''; _pe.style.display = 'none'; } const modalTipText = p.tipFull || p.tip || ''; const modalDisc = '※:使用前請詳閱說明書並依指示之適應症與用法用量使用。'; document.getElementById('modalTip').innerHTML = modalTipText.includes('※') ? modalTipText : modalTipText + '
' + modalDisc + ''; const voicesDiv = document.getElementById('modalVoices'); const voiceList = document.getElementById('modalVoiceList'); if (p.voices && p.voices.length > 0) { voicesDiv.style.display = 'block'; document.getElementById('modalVoiceCount').textContent = p.voiceCount + '則'; voiceList.innerHTML = p.voices.map(function(v) { return ''; }).join(''); } else { voicesDiv.style.display = 'none'; } const ctaBtn = document.getElementById('modalCta'); if (p.column) { ctaBtn.href = p.column; ctaBtn.style.display = 'block'; } else { ctaBtn.style.display = 'none'; } // Set official URL const officialBtn = document.getElementById('modalOfficialBtn'); if (p.originalUrl) { officialBtn.href = p.originalUrl; officialBtn.style.display = 'flex'; } else { officialBtn.style.display = 'none'; } currentModalId = p.id; updateModalHeartBtn(); modal.classList.add('active'); } function openBottomSheet(p) { const visual = document.getElementById('bsVisual'); // 영상 없는 사진 전용 상품은 이미지 영역 축소 const compactIds = [4, 5, 23, 24, 25, 32, 33, 39]; if (compactIds.includes(p.id)) { visual.classList.add('compact-visual'); } else { visual.classList.remove('compact-visual'); } if (p.hasVideo && p.videoId) { visual.classList.add('has-video'); visual.innerHTML = ''; } else { visual.classList.remove('has-video'); visual.innerHTML = '' + plainName(p.name) + ''; } document.getElementById('bsName').innerHTML = p.name; document.getElementById('bsPrice').textContent = '¥' + p.price.toLocaleString(); const tipText = p.tipFull || p.tip || ''; const bsDisc = '※:使用前請詳閱說明書並依指示之適應症與用法用量使用。'; document.getElementById('bsTip').innerHTML = tipText.includes('※') ? tipText : tipText + '
' + bsDisc + ''; const columnLink = document.getElementById('bsColumn'); if (p.column) { columnLink.href = p.column; columnLink.style.display = 'flex'; document.getElementById('bsColumnTitle').innerHTML = p.name + '的詳細解說'; } else { columnLink.style.display = 'none'; } const voicesDiv = document.getElementById('bsVoices'); const voiceList = document.getElementById('bsVoiceList'); if (p.voices && p.voices.length > 0) { voicesDiv.style.display = 'block'; document.getElementById('bsVoiceCount').textContent = p.voiceCount + '則'; voiceList.innerHTML = p.voices.map(function(v) { return '
' + v.initial + '

' + v.name + '

' + v.attr + '

' + v.text + '

'; }).join(''); } else { voicesDiv.style.display = 'none'; } // Set official URL const officialBtn = document.getElementById('bsOfficialBtn'); if (p.originalUrl) { officialBtn.href = p.originalUrl; officialBtn.style.display = 'flex'; } else { officialBtn.style.display = 'none'; } currentBsId = p.id; updateBsHeartBtn(); document.getElementById('bsOverlay').classList.add('is-open'); document.body.style.overflow = 'hidden'; } function closeBottomSheet() { const id = currentBsId; // Clear URL parameter const url = new URL(window.location.href); url.searchParams.delete('product'); try { window.history.replaceState({}, '', url); } catch(e) {} document.getElementById('bsOverlay').classList.remove('is-open'); document.body.style.overflow = ''; currentBsId = null; // 닫은 후 해당 카드의 카테고리 섹션으로 스크롤 복귀 if (id) { setTimeout(function() { var cardEl = document.querySelector('.card[data-id="' + id + '"]'); if (cardEl) { var catSection = null; // 카드의 상위 cat-hd 섹션 찾기 (이전 형제 순회) var el = cardEl; while (el && el.parentElement) { el = el.parentElement; var prevCat = el.previousElementSibling; while (prevCat) { if (prevCat.classList && prevCat.classList.contains('cat-hd')) { catSection = prevCat; break; } prevCat = prevCat.previousElementSibling; } if (catSection) break; } var target = catSection || cardEl; var offset = 80; var top = target.getBoundingClientRect().top + window.pageYOffset - offset; window.scrollTo({ top: top, behavior: 'smooth' }); } else { // 동적 카드(탭 렌더링)인 경우 products-section으로 var sec = document.getElementById('products-section'); if (sec) sec.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }, 150); } } function updateBsHeartBtn() { const btn = document.getElementById('bsHeartBtn'); const isInList = myList.includes(currentBsId); btn.classList.toggle('active', isInList); btn.innerHTML = isInList ? '' : ''; } function toggleListFromBottomSheet() { if (!currentBsId) return; toggleList(currentBsId); updateBsHeartBtn(); } function shareToLineFromBS() { if (!currentBsId) return; const all = getAllProducts(); const p = all.find(function(x) { return x.id === currentBsId; }); if (p) { const productUrl = window.location.origin + window.location.pathname + '?product=' + p.slug; const text = encodeURIComponent(plainName(p.name) + '\n¥' + p.price.toLocaleString() + '\n\n' + productUrl); window.open('https://line.me/R/msg/text/?' + text, '_blank'); } } function shareProductFromBS() { if (!currentBsId) return; const all = getAllProducts(); const p = all.find(function(x) { return x.id === currentBsId; }); if (p) shareItem(plainName(p.name)); } function closeDetailModal() { // Clear URL parameter const url = new URL(window.location.href); url.searchParams.delete('product'); try { window.history.replaceState({}, '', url); } catch(e) {} document.getElementById('detailModal').classList.remove('active'); currentModalId = null; } function updateModalHeartBtn() { const btn = document.getElementById('modalHeartBtn'); const isInList = myList.includes(currentModalId); btn.classList.toggle('active', isInList); btn.innerHTML = isInList ? '' : ''; } function shareToLineProduct() { if (!currentModalId) return; const all = getAllProducts(); const p = all.find(function(x) { return x.id === currentModalId; }); if (p) { const productUrl = window.location.origin + window.location.pathname + '?product=' + p.slug; const text = encodeURIComponent(plainName(p.name) + '\n¥' + p.price.toLocaleString() + '\n\n' + productUrl); window.open('https://line.me/R/msg/text/?' + text, '_blank'); } } // 秋: GA4 — ♡ 清單追加(Google Ads コンバージョン候補) function trackListAdd(id) { try { if (typeof gtag !== 'function') return; var p = (typeof getAllProducts === 'function') ? getAllProducts().find(function(x) { return x.id === id; }) : null; gtag('event', 'lp_add_to_list', { product_id: id, product_name: p ? plainName(p.name) : '', product_brand: p ? (p.brand || '') : '', list_size: myList.length }); } catch (e) {} } function toggleList(id, event) { if (event) { event.stopPropagation(); const btn = event.currentTarget; const icon = btn.querySelector('i'); if (myList.includes(id)) { myList = myList.filter(function(x) { return x !== id; }); btn.classList.remove('active'); icon.classList.remove('fas'); icon.classList.add('far'); showToast('已從收藏中移除'); } else { myList.push(id); btn.classList.add('active'); icon.classList.remove('far'); icon.classList.add('fas'); btn.style.transform = 'scale(1.3)'; setTimeout(function() { btn.style.transform = 'scale(1)'; }, 200); showToast('已加入清單!'); trackListAdd(id); } localStorage.setItem('cheGuide2026', JSON.stringify(myList)); updateCount(); initCardHeartButtons(); // 카드 하트 상태 갱신 } else { if (myList.includes(id)) { myList = myList.filter(function(x) { return x !== id; }); } else { myList.push(id); showToast('已加入清單'); trackListAdd(id); } localStorage.setItem('cheGuide2026', JSON.stringify(myList)); updateCount(); initCardHeartButtons(); // 카드 하트 상태 갱신 } } function toggleListFromModal() { if (!currentModalId) return; toggleList(currentModalId); updateModalHeartBtn(); } function updateCount() { var el = document.getElementById('listCount'); if (el) el.textContent = myList.length; // 秋: 0件のときは「何ができるか」を伝える var hint = document.querySelector('.sticky-hint'); if (hint) hint.textContent = myList.length === 0 ? '點選 ♡ 收藏,到店裡照著買' : '點擊查看清單'; } function openListModal() { const modal = document.getElementById('listModal'); const container = document.getElementById('listItems'); const footer = document.getElementById('listFooter'); const screenshotTip = document.getElementById('listScreenshotTip'); const all = getAllProducts(); if (myList.length === 0) { container.innerHTML = '

尚未加入任何商品

'; footer.style.display = 'none'; screenshotTip.style.display = 'none'; var sumBox = document.getElementById('listSum'); if (sumBox) sumBox.style.display = 'none'; // 秋: 全件削除後に前回の合計が残るバグ対策 } else { container.innerHTML = myList.map(function(id) { const p = all.find(function(x) { return x.id === id; }); if (!p) return ''; var done = cheChecked.indexOf(id) !== -1; return '
' + '' + '' + '

' + p.name + '

' + (p.priceText || ('¥' + p.price.toLocaleString())) + '

' + '' + '
'; }).join(''); footer.style.display = 'flex'; screenshotTip.style.display = 'flex'; updateListSummary(); } modal.classList.add('active'); } // 秋: 店頭チェックリスト(チェック状態と合計・免税ラインの表示) var cheChecked = []; try { cheChecked = JSON.parse(localStorage.getItem('cheChecked2026') || '[]'); } catch (e) { cheChecked = []; } function toggleChecked(id) { var i = cheChecked.indexOf(id); if (i === -1) { cheChecked.push(id); } else { cheChecked.splice(i, 1); } try { localStorage.setItem('cheChecked2026', JSON.stringify(cheChecked)); } catch (e) {} var row = document.querySelector('.list-item[data-lid="' + id + '"]'); if (row) { var on = cheChecked.indexOf(id) !== -1; row.classList.toggle('is-done', on); var box = row.querySelector('.list-check'); if (box) box.classList.toggle('is-on', on); } updateListSummary(); } window.toggleChecked = toggleChecked; function updateListSummary() { var box = document.getElementById('listSum'); if (!box) return; var all = getAllProducts(); var total = 0, unknown = 0, done = 0; myList.forEach(function(id) { var p = all.find(function(x) { return x.id === id; }); if (!p) return; if (cheChecked.indexOf(id) !== -1) done++; if (p.price && p.price > 0) { total += p.price; } else { unknown++; } }); if (myList.length === 0) { box.style.display = 'none'; return; } box.style.display = 'block'; var lb = box.querySelector('.list-sum-lb'); if (lb) lb.textContent = '清單合計(含稅)'; document.getElementById('listSumVal').textContent = '約 ¥' + total.toLocaleString(); var bar = document.getElementById('listSumBar'); if (bar && bar.parentNode) bar.parentNode.style.display = 'none'; // 秋: チェック=店頭での「買った」印。免税判定は店ごとなので計算せず案内のみ var note = (done > 0 ? '已勾選 ' + done + '/' + myList.length + ' 件。' : '在店裡買一件,就勾一件。') + '
參考價格的合計,實際售價依各店鋪而異。' + '
※ 免稅以同一天・同一間店合計未稅滿¥5,000為準,請以店內結帳金額為準。'; if (unknown > 0) { note += '
※ 尚有' + unknown + '件商品價格未定,未計入合計。'; } document.getElementById('listSumNote').innerHTML = note; } function closeListModal() { document.getElementById('listModal').classList.remove('active'); } function removeFromList(id) { myList = myList.filter(function(x) { return x !== id; }); localStorage.setItem('cheGuide2026', JSON.stringify(myList)); updateCount(); renderTabs(); openListModal(); } function shareToLine() { const all = getAllProducts(); const items = myList.map(function(id) { const p = all.find(function(x) { return x.id === id; }); return p ? '・' + plainName(p.name) + ' ' + (p.priceText || ('¥' + p.price.toLocaleString())) : ''; }).filter(Boolean).join('\n'); const text = encodeURIComponent('【世彬老師的推薦2026秋】我的購物清單\n\n' + items + '\n\n詳情請看:' + location.href); window.open('https://line.me/R/msg/text/?' + text, '_blank'); } function copyUrlFromModal() { if (!currentModalId) return; const all = getAllProducts(); const p = all.find(function(x) { return x.id === currentModalId; }); if (!p) return; const productUrl = window.location.origin + window.location.pathname + '?product=' + p.slug; navigator.clipboard.writeText(productUrl).then(function() { showToast('已複製商品網址!'); }).catch(function() { showToast('複製失敗,請重試'); }); } function copyUrlFromBS() { if (!currentBsId) return; const all = getAllProducts(); const p = all.find(function(x) { return x.id === currentBsId; }); if (!p) return; const productUrl = window.location.origin + window.location.pathname + '?product=' + p.slug; navigator.clipboard.writeText(productUrl).then(function() { showToast('已複製商品網址!'); }).catch(function() { showToast('複製失敗,請重試'); }); } function copyUrl() { navigator.clipboard.writeText(location.href); showToast('已複製網址!'); } function copyCode(code) { navigator.clipboard.writeText(code); showToast('已複製優惠碼!'); } function showToast(msg) { const toast = document.getElementById('toast'); document.getElementById('toastText').textContent = msg; toast.classList.add('show'); setTimeout(function() { toast.classList.remove('show'); }, 2500); } // Tab button events document.querySelectorAll('.tab-btn').forEach(function(btn) { btn.addEventListener('click', function() { switchTab(btn.dataset.tab); }); }); // Store tab events document.querySelectorAll('.store-tab').forEach(function(btn) { btn.addEventListener('click', function() { document.querySelectorAll('.store-tab').forEach(function(b) { b.classList.remove('active'); }); btn.classList.add('active'); const store = btn.dataset.store; document.querySelectorAll('.store-panel').forEach(function(p) { p.classList.remove('active'); }); document.getElementById('store-' + store).classList.add('active'); }); }); // Modal outside click close document.getElementById('detailModal').addEventListener('click', function(e) { if (e.target === document.getElementById('detailModal')) closeDetailModal(); }); document.getElementById('listModal').addEventListener('click', function(e) { if (e.target === document.getElementById('listModal')) closeListModal(); }); // Initialize renderTabs(); updateCount(); // DOM이 완전히 준비된 후 배지 삽입 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { initCardHeartButtons(); initCardVideoOverlays(); updateCardVpSections(); }); } else { initCardHeartButtons(); initCardVideoOverlays(); } // 카드 앞면 하트(즐겨찾기) 버튼 동적 삽입 function initCardHeartButtons() { document.querySelectorAll('.card[data-id], .kazoku-product-card[data-id]').forEach(function(card) { const id = parseInt(card.getAttribute('data-id')); const ciEl = card.querySelector('.ci') || card.querySelector('.ci-h') || card.querySelector('.kazoku-card-photo'); if (!ciEl) return; // 기존 버튼 제거 후 재생성 (상태 갱신용) const existing = ciEl.querySelector('.btn-like-float'); if (existing) existing.remove(); const btn = document.createElement('button'); const isActive = myList.includes(id); btn.className = 'btn-like-float' + (isActive ? ' active' : ''); btn.innerHTML = ''; btn.addEventListener('click', function(e) { toggleList(id, e); }); ciEl.appendChild(btn); }); } // 카드 영상 배지 — A안(이미지 하단 좌측 pill) + C안(footer chip) // 카드 앞면 vp-section을 tabData 실제 데이터로 갱신 function updateCardVpSections() { var all = getAllProducts(); all.forEach(function(p) { var cardEl = document.querySelector('.card[data-id="' + p.id + '"]'); if (!cardEl) return; var vpEl = cardEl.querySelector('.vp-section'); if (!vpEl) return; if (!p.voices || p.voices.length === 0) { vpEl.style.display = 'none'; return; } // 앞 2건만 // ● 더미 데이터면 vp-section 숨김 var realVoices = p.voices.filter(function(v) { return v.text && !v.text.includes('●'); }); if (realVoices.length === 0) { vpEl.style.display = 'none'; return; } var cards = realVoices.slice(0, 2).map(function(v) { var icon = v.snsUrl ? ('' + getSnsIcon(v.snsUrl) + '') : ''; return '
' + '
' + '
' + v.initial + '
' + '' + v.name + '' + '' + v.attr + '' + icon + '
' + '

' + v.text + '

' + '
'; }).join(''); vpEl.innerHTML = '
體驗者心得
' + cards; }); } function initCardVideoOverlays() { const all = getAllProducts(); all.forEach(function(p) { if (!p.hasVideo || !p.videoId) return; const cardEl = document.querySelector('.card[data-id="' + p.id + '"]'); if (!cardEl) return; // A안: .ci 하단 좌측 pill const ciEl = cardEl.querySelector('.ci') || cardEl.querySelector('.ci-h'); if (ciEl && !ciEl.querySelector('.video-pill')) { ciEl.style.position = 'relative'; const pill = document.createElement('div'); pill.className = 'video-pill'; pill.innerHTML = ' 影片'; ciEl.appendChild(pill); } // cf 영역 vid-chip 제거 — 썸네일 pill만 사용 }); } // 필터바 active 스크롤 연동 (function() { var catIds = ['cat1','cat2','cat3','cat4']; var fbBtns = document.querySelectorAll('.cat-fb'); if (!fbBtns.length) return; var observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { var id = entry.target.id; fbBtns.forEach(function(btn) { btn.classList.remove('active'); }); var idx = catIds.indexOf(id); if (idx >= 0 && fbBtns[idx + 1]) fbBtns[idx + 1].classList.add('active'); } }); }, { rootMargin: '-20% 0px -60% 0px', threshold: 0 }); catIds.forEach(function(id) { var el = document.getElementById(id); if (el) observer.observe(el); }); })(); // Scroll-triggered fade-in animations // 秋: セクションが縦に長いと threshold 0.1 に到達できず表示されないため 0 に変更 const observerOptions = { threshold: 0, rootMargin: '0px 0px -40px 0px' }; const fadeObserver = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { entry.target.classList.add('is-visible'); fadeObserver.unobserve(entry.target); } }); }, observerOptions); document.querySelectorAll('.split-banner-section, .featured-section, .products-section, .sakura-section, .store-guide, .outro-section').forEach(function(el) { el.classList.add('fade-section'); fadeObserver.observe(el); }); // Check URL parameter for direct product link (function() { const params = new URLSearchParams(window.location.search); const productSlug = params.get('product'); if (productSlug) { setTimeout(function() { // 家庭薬 전용: kazoku- 슬러그면 가정약 모달 오픈 if (productSlug.indexOf('kazoku-') === 0) { var kkey = productSlug.replace('kazoku-', ''); if (typeof openKazokuModal === 'function') { openKazokuModal(kkey); return; } } const all = getAllProducts(); const p = all.find(function(x) { return x.slug === productSlug; }); if (p) openDetailModal(p.id); }, 300); } })(); // 秋: カテゴリフィルタ固定時の処理(影+モバイルは上部ナビを隠して縦幅を確保) (function () { var bar = document.querySelector('.cat-filter-bar'); if (!bar || !('IntersectionObserver' in window)) return; var header = document.querySelector('.header'); var nav = document.querySelector('.section-nav'); var mq = window.matchMedia('(max-width: 768px)'); var stuck = false; function place() { var h = header ? header.offsetHeight : 0; if (mq.matches) { var n = (nav && !stuck) ? nav.offsetHeight : 0; bar.style.setProperty('top', (h + n) + 'px', 'important'); } else { bar.style.removeProperty('top'); } } var sentinel = document.createElement('div'); sentinel.style.cssText = 'height:1px;'; bar.parentNode.insertBefore(sentinel, bar); new IntersectionObserver(function (e) { stuck = !e[0].isIntersecting && e[0].boundingClientRect.top < 140; bar.classList.toggle('is-stuck', stuck); document.body.classList.toggle('catbar-stuck', stuck && mq.matches); place(); }, { rootMargin: '-140px 0px 0px 0px', threshold: 0 }).observe(sentinel); window.addEventListener('resize', place); window.addEventListener('load', place); place(); })(); // 秋: 広告用ディープリンク ?tab=tips|stores|coupon で購買指南の該当タブを開いてスクロール (function () { try { var tab = new URLSearchParams(location.search).get('tab'); if (!tab || ['tips', 'stores', 'coupon'].indexOf(tab) === -1) return; var go = function () { var t = document.querySelector('.sg-tab[data-sg="' + tab + '"]'); var sec = document.getElementById('store-guide'); if (t) t.click(); if (sec) { var off = (document.querySelector('.header') || {}).offsetHeight || 60; window.scrollTo({ top: sec.getBoundingClientRect().top + window.pageYOffset - off - 50, behavior: 'auto' }); } }; if (document.readyState === 'complete') setTimeout(go, 300); else window.addEventListener('load', function () { setTimeout(go, 300); }); } catch (e) {} })(); // Hero photo + speech slideshow (function() { var _act = document.querySelector('.tei-dot.active'); var current = _act ? parseInt(_act.getAttribute('data-slide'), 10) : 0; var total = document.querySelectorAll('.tei-dot').length || 3; var interval = 4000; var firstHold = 5500; // 秋: 免税の告知スライドを最初に長めに見せる function goToSlide(n) { document.querySelectorAll('.tei-slide').forEach(function(el) { el.classList.remove('active'); }); document.querySelectorAll('.speech-slide').forEach(function(el) { el.classList.remove('active'); }); document.querySelectorAll('.tei-dot').forEach(function(el) { el.classList.remove('active'); }); document.querySelectorAll('[data-slide="' + n + '"]').forEach(function(el) { el.classList.add('active'); }); current = n; } // Auto rotate(初回だけ長め) setTimeout(function() { goToSlide((current + 1) % total); setInterval(function() { goToSlide((current + 1) % total); }, interval); }, firstHold); // Click dots document.querySelectorAll('.tei-dot').forEach(function(dot) { dot.addEventListener('click', function() { goToSlide(parseInt(this.getAttribute('data-slide'))); }); }); })(); // 秋: ヒーローの「本期內容」件数を実データから算出(原稿追加で自動更新) (function () { function set(id, n) { var el = document.getElementById(id); if (el) el.textContent = n; } function run() { if (typeof getAllProducts !== 'function') return; var ids = [].map.call(document.querySelectorAll('.card[data-id]'), function (c) { return parseInt(c.getAttribute('data-id'), 10); }); var kazoku = document.querySelectorAll('.kazoku-product-card').length; var list = getAllProducts().filter(function (p) { return ids.indexOf(p.id) !== -1; }); var col = 0, vid = 0, voi = 0; list.forEach(function (p) { if (p.column) col++; if (p.hasVideo && p.videoId) vid++; voi += (p.voices || []).filter(function (v) { return v.text && v.text.indexOf('\u25cf') === -1; }).length; }); set('hxProducts', ids.length + kazoku); set('hxColumns', col); set('hxVideos', vid); set('hxVoices', voi); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', run); } else { run(); } })(); // 秋: カード表面をコンパクトに(コメント続きはモーダル、法定表記は開閉) (function () { function run() { document.querySelectorAll('.card[data-id]').forEach(function (card) { var id = card.getAttribute('data-id'); var che = card.querySelector('.che-text'); if (che && !che.parentNode.querySelector('.che-more')) { var more = document.createElement('span'); more.className = 'che-more'; more.textContent = '\u8b80\u5168\u6587'; more.onclick = function (e) { e.stopPropagation(); if (window.openDetailModal) openDetailModal(parseInt(id, 10)); }; che.parentNode.appendChild(more); } var drug = card.querySelector('.ci-drug'); if (drug && !drug.nextElementSibling?.classList?.contains('ci-drug-toggle')) { var tg = document.createElement('span'); tg.className = 'ci-drug-toggle'; tg.textContent = '\uff0b \u8a73\u898b\u6cd5\u5b9a\u6a19\u793a'; tg.onclick = function (e) { e.stopPropagation(); var open = drug.classList.toggle('is-open'); tg.textContent = open ? '\u2212 \u6536\u8d77' : '\uff0b \u8a73\u898b\u6cd5\u5b9a\u6a19\u793a'; }; drug.parentNode.insertBefore(tg, drug.nextSibling); } }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', run); } else { run(); } setTimeout(run, 600); })(); // Onboarding tooltip - show once for first-time visitors (function() { if (localStorage.getItem('cheOnboarded2026a')) return; var tip = document.getElementById('onboardingTip'); var shown = false; var observer = new IntersectionObserver(function(entries) { if (entries[0].isIntersecting && !shown) { shown = true; setTimeout(function() { tip.classList.add('show'); }, 1500); // Auto-hide after 8 seconds setTimeout(function() { closeOnboarding(); }, 13500); } }, { threshold: 0 }); // 秋: セクションが縦に長く threshold 0.3 に到達できないため、先頭のカードを監視 var target = document.querySelector('.products-section .card') || document.querySelector('.products-section'); if (target) observer.observe(target); })(); function closeOnboarding() { var tip = document.getElementById('onboardingTip'); if (tip) { tip.style.opacity = '0'; tip.style.transition = 'opacity 0.3s'; setTimeout(function() { tip.style.display = 'none'; }, 300); } localStorage.setItem('cheOnboarded2026a', '1'); } /* === Sakura Date Matcher + Seasonal Switch === */ (function() { var skCities = [ { name:'名古屋', bloom:'3/17', full:'3/30', fall:'4/3', snow:'4/6', img:'', tip:'', sensei:'名古屋的櫻花已進入尾聲,吹雪景色也非常美!鶴舞公園的花瓣地毯一定要看 🌸' }, { name:'東京', bloom:'3/19', full:'3/28', fall:'4/1', snow:'4/4', img:'', tip:'', sensei:'東京今年3/19開花、3/28滿開!目前進入吹雪階段,上野公園的花瓣飛舞也很夢幻 💨' }, { name:'福岡', bloom:'3/24', full:'4/3', fall:'4/7', snow:'4/10', img:'', tip:'', sensei:'福岡4/3滿開!現在飄落中,舞鶴公園的花瓣地毯超美,搭配太宰府一日遊剛剛好 🚃' }, { name:'大阪', bloom:'3/26', full:'4/3', fall:'4/7', snow:'4/10', img:'', tip:'', sensei:'大阪4/3滿開!大阪城公園現在飄落中,花瓣飛舞的景色別有一番風情 🏯' }, { name:'京都', bloom:'3/23', full:'3/30', fall:'4/3', snow:'4/6', img:'', tip:'', sensei:'京都今年3/30滿開已結束。4月初哲學之道的吹雪景色超美,還有機會欣賞到最後的浪漫 🌸' }, { name:'仙台', bloom:'3/31', full:'4/4', fall:'4/8', snow:'4/11', img:'', tip:'', sensei:'仙台現在正值滿開!白石川沿岸8公里的一目千本櫻超壯觀,4/8前是最佳賞花時機 🚂' }, { name:'札幌', bloom:'4/20', full:'4/25', fall:'4/29', snow:'5/2', img:'', tip:'', sensei:'北海道今年比平年早,4/20頃開花預定!圓山公園可以邊烤肉邊賞櫻,完全沒有花粉困擾 🦌' }, { name:'沖繩', bloom:'1/15', full:'2/1', fall:'2/8', snow:'2/12', img:'', tip:'', sensei:'沖繩的寒緋櫻是深粉色,和本州染井吉野完全不同。1~2月在今帰仁城跡就能看到!今年已結束' } ]; function skParseDate(str, yr) { yr = yr || 2026; var p = str.split('/'); return new Date(yr, parseInt(p[0])-1, parseInt(p[1])); } /* --- Seasonal Auto-Switch --- */ var now = new Date(); var heroEl = document.getElementById('sakura-section'); var detailEl = document.querySelector('.sakura-section'); var senseiText = document.getElementById('skSenseiText'); var phase1End = new Date(2026, 3, 15); // 4/15 var phase2End = new Date(2026, 4, 10); // 5/10 if (now > phase2End) { // Phase 3: season over — hide hero, simplify detail section if (heroEl) heroEl.style.display = 'none'; if (detailEl) { var inner = detailEl.querySelector('.sakura-inner'); if (inner) { inner.innerHTML = '
' + '
🌿
' + '
2026年的櫻花季已結束
' + '

感謝大家今年的賞櫻!
接下來進入夏季,別忘了防曬和消暑對策商品~

' + '
' + '世彬老師' + '

櫻花季結束了,但夏天的日本也很精彩!防曬、止汗、防蚊⋯⋯我的推薦商品都在上面,記得看看唷 ☀️

' + '
' + '
'; } } } else if (now > phase1End && senseiText) { // Phase 2: tokyo/osaka ended, sapporo highlight senseiText.innerHTML = '東京・大阪的櫻花差不多結束了,但札幌現在正是滿開!
5月去北海道完全沒有花粉困擾,推薦給怕花粉的朋友 🌸'; var cityEls = document.querySelectorAll('.sakura-city'); cityEls.forEach(function(el) { el.classList.remove('active'); if (el.querySelector('.name') && el.querySelector('.name').textContent === '札幌') { el.classList.add('active'); } }); } // Phase 1 (default): as-is /* --- Date Matcher --- */ var _skDateBtn=document.getElementById('skDateBtn'); if(_skDateBtn) _skDateBtn.addEventListener('click', function() { var sv = document.getElementById('skTravelStart').value; var ev = document.getElementById('skTravelEnd').value; if (!sv || !ev) return; var start = new Date(sv), end = new Date(ev); var best = null, bestScore = -999, bestStage = ''; skCities.forEach(function(c) { var bloom = skParseDate(c.bloom), full = skParseDate(c.full); var fall = skParseDate(c.fall), snow = skParseDate(c.snow); var os = new Date(Math.max(start, bloom)); var oe = new Date(Math.min(end, snow)); var overlap = (oe - os) / 864e5; if (overlap > 0) { var mid = new Date((start.getTime() + end.getTime()) / 2); var dist = Math.abs(mid - full) / 864e5; var score = overlap * 10 - dist; if (score > bestScore) { bestScore = score; best = c; bestStage = mid < bloom ? 'before' : mid < full ? 'bloom' : mid < fall ? 'full' : mid < snow ? 'fall' : 'snow'; } } }); if (!best) { alert('該期間沒有適合賞櫻的城市,建議調整日期!'); return; } var info = { before: { icon:'🌱', badge:'即將開花', status:'還在含苞待放中!', idx:-1 }, bloom: { icon:'🌸', badge:'開花中', status:'開花中!已經可以賞櫻了', idx:0 }, full: { icon:'🌺', badge:'滿開', status:'滿開!最佳觀賞時期 🎉', idx:1 }, fall: { icon:'🍃', badge:'開始飄落', status:'花瓣飄落中,別有一番風味', idx:2 }, snow: { icon:'💨', badge:'櫻花吹雪', status:'櫻花吹雪!最後的浪漫', idx:3 } }[bestStage]; // Fill result document.getElementById('skResultIcon').textContent = info.icon; document.getElementById('skResultBadge').textContent = info.badge; document.getElementById('skResultCity').textContent = best.name; document.getElementById('skResultStatus').textContent = info.status; // Fill dates document.getElementById('skDate0').textContent = best.bloom; document.getElementById('skDate1').textContent = best.full; document.getElementById('skDate2').textContent = best.fall; document.getElementById('skDate3').textContent = best.snow; // Progress bar state var stages = ['skStage0','skStage1','skStage2','skStage3']; stages.forEach(function(id, i) { var el = document.getElementById(id); el.classList.remove('is-past','is-current','is-future'); if (i < info.idx) el.classList.add('is-past'); else if (i === info.idx) el.classList.add('is-current'); else el.classList.add('is-future'); }); // Progress fill width var fillPct = info.idx < 0 ? 0 : (info.idx / 3) * 100; document.getElementById('skProgressFill').style.width = fillPct + '%'; // Sensei comment // Sensei comment now in speech bubble above photo // Update speech bubble var speechText = best.sensei || '你的旅程期間可以賞櫻!'; document.getElementById('skSpeechText').textContent = speechText; var speech = document.getElementById('skSpeech'); speech.style.animation = 'none'; speech.offsetHeight; // trigger reflow speech.style.animation = 'skSpeechIn 0.4s ease-out'; // Show var result = document.getElementById('skResultInline'); result.classList.add('is-visible'); document.getElementById('sakura-section').scrollIntoView({ behavior: 'smooth', block: 'start' }); // Sync highlight to 4-stage photo cards below document.querySelectorAll('.sakura-stage').forEach(function(el) { el.classList.remove('is-highlight'); }); var targetIdx = info.idx; var targetCard = document.querySelector('.sakura-stage[data-stage-idx="' + targetIdx + '"]'); if (targetCard) { targetCard.classList.add('is-highlight'); setTimeout(function() { targetCard.scrollIntoView({ behavior: 'smooth', block: 'center' }); }, 600); } }); // Retry var _skRetry=document.getElementById('skResultRetry'); if(_skRetry) _skRetry.addEventListener('click', function() { document.getElementById('skResultInline').classList.remove('is-visible'); document.querySelectorAll('.sakura-stage').forEach(function(el) { el.classList.remove('is-highlight'); }); document.getElementById('skSpeechText').textContent = '日期輸入好了嗎?我來幫你找最適合的城市!🌿'; document.getElementById('skTravelStart').focus(); }); // Store Guide Tabs & Scroll Arrows // Store scroll arrows (function() { var scroller = document.getElementById('sgStoresScroll'); var leftBtn = document.getElementById('sgArrowL'); var rightBtn = document.getElementById('sgArrowR'); if (scroller && leftBtn && rightBtn) { var scrollAmt = 314; // card width + gap leftBtn.addEventListener('click', function() { scroller.scrollBy({ left: -scrollAmt, behavior: 'smooth' }); }); rightBtn.addEventListener('click', function() { scroller.scrollBy({ left: scrollAmt, behavior: 'smooth' }); }); } })(); document.querySelectorAll('.sg-tab').forEach(function(tab) { tab.addEventListener('click', function() { document.querySelectorAll('.sg-tab').forEach(function(t) { t.classList.remove('is-active'); }); document.querySelectorAll('.sg-panel').forEach(function(p) { p.classList.remove('is-active'); }); this.classList.add('is-active'); var target = document.getElementById('sg-' + this.dataset.sg); if (target) target.classList.add('is-active'); }); }); // Section Nav scroll spy (mobile + PC) (function() { var mobileItems = document.querySelectorAll('.section-nav-item'); var pcItems = document.querySelectorAll('.header-nav-item'); var allNavItems = document.querySelectorAll('.section-nav-item, .header-nav-item'); var sections = []; mobileItems.forEach(function(item) { var id = item.getAttribute('href').replace('#', ''); var el = document.getElementById(id); if (el) sections.push({ id: id, el: el }); }); function updateNav() { var scrollY = window.scrollY + 100; var currentId = null; sections.forEach(function(s) { if (s.el.offsetTop <= scrollY) currentId = s.id; }); allNavItems.forEach(function(n) { n.classList.remove('is-active'); }); if (currentId) { allNavItems.forEach(function(n) { if (n.getAttribute('href') === '#' + currentId) n.classList.add('is-active'); }); var nav = document.getElementById('sectionNav'); var activeM = nav ? nav.querySelector('.is-active') : null; if (activeM && nav) { var left = activeM.offsetLeft - nav.offsetWidth / 2 + activeM.offsetWidth / 2; nav.scrollTo({ left: left, behavior: 'smooth' }); } } } window.addEventListener('scroll', updateNav, { passive: true }); updateNav(); allNavItems.forEach(function(item) { item.addEventListener('click', function(e) { e.preventDefault(); var id = this.getAttribute('href').replace('#', ''); var el = document.getElementById(id); if (el) { var top = el.offsetTop - 90; window.scrollTo({ top: top, behavior: 'smooth' }); } }); }); })(); })();