PageSourceSearch

https://www.thenorthface.com.tw/V2/Official/BrandStory

html thenorthface.com.tw collected 2026-10-01 14:04:50 UTC 40,027 bytes, 699 lines download raw bytes

1
2<!DOCTYPE html>
3
4<html>
5    <head>
6        <!-- JS Health Check:必須在所有外部 script 之前,capture-phase 才能攔截到所有載入失敗 -->
7        
8
9<script type="text/javascript">
10    (function () {
11        var FRAMEWORK = 'react';
12
13        // =========================================================
14        // 第一層:capture-phase 攔截所有 
14<script> 下載失敗
15        // capture: true → document 層級攔截,比任何其他 handler 更早
16        // 不管 script 什麼時候插入 DOM 都能攔到
17        // =========================================================
18        var loadErrors = [];
19        // 只監控 91app 自家 CDN 的 script,排除第三方(GTM、FB、LINE、AppInsights ai.0.js 等)
20        var monitoredDomains = ['91app.com', '91dev.tw', '91mai.com'];
21        document.addEventListener('error', function (e) {
22            if (e.target && e.target.tagName === 'SCRIPT' && e.target.src) {
23                var src = e.target.src;
24                for (var i = 0; i < monitoredDomains.length; i++) {
25                    if (src.indexOf(monitoredDomains[i]) !== -1) {
26                        loadErrors.push(src);
27                        break;
28                    }
29                }
30            }
31        }, true);
32
33        // =========================================================
34        // 第二層:DOMContentLoaded = HTML parsing 完成 + 所有 defer script 執行完
35        // 依 framework 檢查不同的 global 集合
36        // =========================================================
37        document.addEventListener('DOMContentLoaded', function () {
38            var n = window.nineyi || {};
39            var deps = {};
40
41            if (FRAMEWORK === 'react') {
42                deps = {
43                    'trackingSdk':  !!(n.trackingSdk),
44                    'React':        typeof React !== 'undefined',
45                    'ReactDOM':     typeof ReactDOM !== 'undefined',
46                    'ReactRedux':   typeof ReactRedux !== 'undefined',
47                    'ThemeCore':    typeof ThemeCore !== 'undefined',
48                };
49            }
50
51            var missing = [];
52            for (var k in deps) {
53                if (deps.hasOwnProperty(k) && !deps[k]) {
54                    missing.push(k);
55                }
56            }
57
58            // 有異常才回報,正常情況不發送任何 event
59            if (missing.length === 0 && loadErrors.length === 0) return;
60
61            var info = {
62                framework:  FRAMEWORK,
63                missing:    missing.join(','),
64                loadErrors: loadErrors.join(','),
65                shopId:     String(n.shopId || 'unknown'),
66                url:        location.href,
67                userAgent:  navigator.userAgent
68            };
69
70            // 回報到 Application Insights(送 exceptions 表,會出現在 Failures blade)
71            // Legacy SDK 的 trackException 約延遲 5 秒批次送出
72            try {
73                if (window.appInsights && window.appInsights.trackException) {
74                    window.appInsights.trackException(
75                        new Error('JS_HEALTH_CHECK_FAILURE: missing=[' + info.missing + '] loadErrors=[' + info.loadErrors + ']')
76                    );
77                }
78            } catch (e) { /* silent */ }
79
80            // 同時輸出到 console,方便客訴時截圖
81            if (typeof console !== 'undefined' && console.error) {
82                console.error('[JS Health Check] dependency failure:', info);
83            }
84        });
85    })();
86</script>
86
87
88
89        <title>
90品牌故事 | The North Face        </title>
91        
92        <meta name="description" content="The North Face自1966年由兩位熱愛登山的年輕登山者在美西舊金山所創立,以最先進的技術投入設計,生產專業戶外服飾與配備。在全球市場上,The North Face永遠都是成功登頂者、極限運動選手、極地探險家的首選,品牌在1976年便成立了品質控制實驗室,每項產品都經過實地測試、精進設計,至今The North Face代表的不僅只是優良的裝備,更是人們走出戶外或戶外探險時的最佳夥伴。(品牌故事)">
93
94        <meta http-equiv="content-language" content="zh-TW" />
95        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
96        <meta name="google" content="notranslate" />
97        <meta name="msvalidate.01" content="" />
98
99
100        <meta property="fb:pages" content="thenorthfacetaiwan">
101
102
103        <link rel="icon" href="//img.91app.com/webapi/images/o/16/16/ShopFavicon/16525/16525favicon?v=202610011457" />
104        <link rel="shortcut icon" href="//img.91app.com/webapi/images/o/16/16/ShopFavicon/16525/16525favicon?v=202610011457" />
105        <!-- hrefLangs start -->
106        
107    <link rel="alternate" hreflang="x-default" href="https://www.thenorthface.com.tw/V2/Official/BrandStory" />
108        <link rel="alternate" hreflang="zh-TW" href="https://www.thenorthface.com.tw/V2/Official/BrandStory?lang=zh-TW" />
109
110        <!-- hrefLangs end -->
111
112        <link rel="stylesheet" href="//official-static.91app.com/V2/Scripts/dist/css/style.css?v=020260929135318">
113
114        <!-- themeCore fonts 和 icons 的樣式使用 CMS 的 CDN,本機開發也使用 CMS 的 CDN -->
115        <link rel='stylesheet' href='https://cms-static.cdn.91app.com/lib/cms-theme-core/3.106.4/css/desktop.default.css?v=020260929135318'>
116<link rel='stylesheet' href='https://cms-static.cdn.91app.com/cms/common/iconFonts/css/font-awesome.css?v=020260929135318' /><link rel='stylesheet' href='https://cms-static.cdn.91app.com/cms/common/iconFonts/css/icon91.css?v=020260929135318' />        <!-- 使用 trinity-core 的 baseStyle.css -->
117
118        <!-- 客製化 IconFont 設定 -->
119<link rel='stylesheet' href='https://cms-static.cdn.91app.com/cms/common/iconFonts/v1.1.16/nine1/nine1.css?v=20260929135318' />        <!-- 客製化 Font-Family 設定 -->
120                
121        <link rel="apple-touch-icon" href="//img.91app.com/webapi/images/t/512/512/ShopIcon/16525/0/10012203" />
122        <link rel="apple-touch-icon" sizes="180x180" href="//img.91app.com/webapi/images/t/512/512/ShopIcon/16525/0/10012203" />
123        <link rel="apple-touch-icon-precomposed" href="//img.91app.com/webapi/images/t/512/512/ShopIcon/16525/0/10012203" />
124        <link rel="apple-touch-icon-precomposed" sizes="180x180" href="//img.91app.com/webapi/images/t/512/512/ShopIcon/16525/0/10012203" />
125
126            <link rel="canonical" href="https://www.thenorthface.com.tw/V2/Official/BrandStory" />
127
128
129<!-- Google Tag Manager -->
130<script>
vendor: 331 bytes, lines 130-134
130(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
131new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
132j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
133'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
134})(window,document,'script','dataLayer','
134GTM-TD6HZH3
vendor: 3 bytes, line 134
134');
134</script>
134
135<!-- End Google Tag Manager -->
136        <!--Universal Google Analytics Start-->
137
138<script>
139        window.nineyi = window.nineyi || {};
140        window.nineyi.googleAnalyticsSettingData = {
141            GoogleAnalyticsTrackingId: '',
142            GoogleAnalytics4TrackingId: 'G-2Y3WBPXCF3',
143            CookieDomainSetting: document.location.hostname,
144            originDomain: 'https://www.thenorthface.com.tw',
145            officialSsoDomain: 'service.91app.com',
146            DefaultCurrencyCode: 'TWD',
147            isEnableVipMemberOuterIdDimension: 'False' === 'True',
148            customOuidDimensionName: '',
149            isUseOriginalClientId: 'False' === 'True',
150            isShowSaleProductOuterId: 'False' === 'True',
151            isPassOuterMemberCode: 'True' === 'True',
152        };
153</script>
153
154
155        <!-- LINE Tag Base Code Start -->
156<script>
157    (function (g, d, o) {
158        g._ltq = g._ltq || []; g._lt = g._lt || function () { g._ltq.push(arguments) };
159        var h = location.protocol === 'https:' ? 'https://d.line-scdn.net' : 'http://d.line-cdn.net';
160        var s = d.createElement('script'); s.async = 1;
161        s.src = o || h + '/n/line_tag/public/release/v1/lt.js';
162        var t = d.getElementsByTagName('script')[0]; t.parentNode.insertBefore(s, t);
163    })(window, document);
164    window.nineyi = window.nineyi || {};
165    window.nineyi.lineAdTrackingConfigList = JSON.parse('[{"LineTagIdCode":"c4d65125-af15-4d24-b260-4a89a0c1109a","LineTrackingEvent":["Finish","AddToCart","Registration","ViewContent"]},{"LineTagIdCode":"49a7f9ad-04f0-49c3-a388-0627cb7b9526","LineTrackingEvent":["Finish","AddToCart","Registration","ViewContent"]}]');
166</script>
166
167<noscript>
168        <img height="1" width="1" style="display:none"
169             src="https://tr.line.me/tag.gif?c_t=lap&t_id=c4d65125-af15-4d24-b260-4a89a0c1109a&e=pv&noscript=1" />
170        <img height="1" width="1" style="display:none"
171             src="https://tr.line.me/tag.gif?c_t=lap&t_id=49a7f9ad-04f0-49c3-a388-0627cb7b9526&e=pv&noscript=1" />
172</noscript>
173<!-- End LINE Tag Base Code End -->
174
175        <div id="fb-root"></div>
176<!--Facebook Pixel Code Start-->
177<script>
178    !function (f, b, e, v, n, t, s) {
179        if (f.fbq)return;
180        n = f.fbq = function () {
181            n.callMethod ?
182                    n.callMethod.apply(n, arguments) : n.queue.push(arguments)
183        };
184        if (!f._fbq)f._fbq = n;
185        n.push = n;
186        n.loaded = !0;
187        n.version = '2.0';
188        n.queue = [];
189        t = b.createElement(e);
190        t.async = !0;
191        t.src = v;
192        s = b.getElementsByTagName(e)[0];
193        s.parentNode.insertBefore(t, s)
194    }(window, document, 'script', '//connect.facebook.net/en_US/fbevents.js');
195    var FbCustomAudiencesPixelIds = JSON.parse('["156079134940411","281608218975348","2042864672592614","916563555404284","845834740777626"]');
196    var AllSiteFbCustomAudiencesPixelId = '1021834927899745';
197    var IsEnableAdvancedFacebookPixel = JSON.parse('true');
198</script>
198
199<!--Facebook Pixel Code End-->
200            <!--GoogleConversion-->
201    
201<script async src="https://www.googletagmanager.com/gtag/js?id="></script>
201
202    
202<script>
203        window.dataLayer = window.dataLayer || [];
204        function gtag(){dataLayer.push(arguments);}
205        gtag('js', new Date());
206    </script>
206
207        <!--GoogleConversion-->
208        
208<script>
209            var GoogleConversionData = JSON.parse('{"TrackingIdList":["676225245","813811838"],"ShopUseNewCode":true,"ConversionList":[{"Id":"676225245","Label":"RuL-COCv9sgBEN3BucIC","TagType":"GoogleConversionForShoppingCart"},{"Id":"676225245","Label":"5crwCL2z9sgBEN3BucIC","TagType":"GoogleConversionForRegistrationCompleted"},{"Id":"813811838","Label":"KYwACJyit34Q_pCHhAM","TagType":"GoogleConversionForPayFinish"},{"Id":"676225245","Label":"cv9lCKKS68gBEN3BucIC","TagType":"GoogleConversionForPayFinish"}]}');
210            var GoogleRemarketingData = JSON.parse('{"TrackingIdList":["813811838","802292246","676225245"],"RemarketingList":[{"TrackingId":"813811838","Label":""},{"TrackingId":"802292246","Label":"ZMBwCOrXjYQBEJaEyP4C"},{"TrackingId":"676225245","Label":""}]}');
211        </script>
211
212
213        <!-- Yahoo Dot Tag Base Code Start -->
214<!-- Yahoo Dot Tag Base Code End -->
215        
216<!-- initial mweb constant -->
217<script src="//official-static.91app.com/V2/Scripts/cookies.min.js"></script>
217
218
219    
219<script src='https://app.cdn.91app.com/global/currency-exchange-rate/currency.js'></script>
219
220
221<script>
222    window.nineyi = window.nineyi || {};
223    window.nineyi.shopId = 16525;
224    window.nineyi.appSetting = window.nineyi.appSetting || {};
225    window.nineyi.appSetting.logLevel = parseInt('2');
226    window.nineyi.appSetting.viewTitle = '品牌故事';
227    window.nineyi.ServiceWorker = window.nineyi.ServiceWorker || {};
228    window.nineyi.ServiceWorker.Env = 'Prod';
229    window.nineyi.facebookConfig = {
230        allSiteFbPixelId: AllSiteFbCustomAudiencesPixelId,
231        CustomAudiencesPixelIds: FbCustomAudiencesPixelIds
232    };
233    window.nineyi.Execmode = 'Prod';
234    window.nineyi.version = '20260929135318';
235    window.nineyi.ServiceWorker.Options = {
236        v: '1',
237        tid: '',
238        ccode: 'TW',
239        ch: 'web',
240        cud: 'TWD',
241        ld: 'zh-TW',
242        shopId: 16525,
243    }
244    window.nineyi.pageType = '';
245    window.nineyi.launchType = '';
246    window.nineyi.silo = '91app';
247    window.nineyi.dependencies = window.nineyi.dependencies || {};
248    window.nineyi.dependencies.apiConfig = window.nineyi.dependencies.apiConfig || {
249        cdnApiHost:'https://webapi.91app.com',
250        isEnableCdnApi: "True" == 'True'
251    };
252    window.nineyi.dependencies.env = 'Prod';
253    window.nineyi.dependencies.market = 'TW';
254    window.nineyi.dependencies.shopId = parseInt('16525');
255    window.nineyi.cookieExpireTime = {
256        fr: 86400000,
257        fr2: 86400000,
258        act: 172800000,
259    };
260
261    window.nineyi.MWeb = window.nineyi.MWeb || {};
262    window.nineyi.MWeb.OfficialOriginDomain = 'https://www.thenorthface.com.tw';
263    window.nineyi.MWeb.ApiCdnConfig = {
264        "Url": 'https://webapi.91app.com',
265        "IsEnable": "True" == 'True'
266    };
267    window.nineyi.MWeb.MachineName = 'TW-MWG1-60-102';
268    window.nineyi.MWeb.OfficialShopProfile = {"ShopId":16525,"BrowserMode":1,"DeviceMode":1,"StoreTotalCount":81,"LayoutAreaSetting":{"IsEnableLeftAside":true,"IsEnableHeader":true,"IsEnableFooter":true},"SharedFrameViewModel":{"OfficialCustomLink":null},"HasNewVersionSwitch":true,"LineShopLandingPopupEnabled":false,"IsPassOuterMemberCode":true};
269    window.nineyi.MWeb.CmsShopInfo = {"EnableCms":true,"Version":"742e76c7-d4f1-459b-98c2-19146fddd924_1790837821803"};
270    window.nineyi.MWeb.CmsApiDomain = 'https://fts-api.91app.com';
271    window.nineyi.MWeb.ShopId = parseInt('16525');
272    window.nineyi.MWeb.ShopName = "The North Face";
273    window.nineyi.MWeb.SupplierName = "台灣威富品牌有限公司";
274    window.nineyi.MWeb.UnLoginId = '';
275    window.nineyi.MWeb.IsThirdpartyAuthMember = 'False'.toLocaleLowerCase() === 'true';
276    window.nineyi.MWeb.ThirdpartyAuthTypeDef = '';
277    window.nineyi.MWeb.ThirdpartyAuthButtonContent = '';
278    window.nineyi.MWeb.ThirdpartyAuthIconUrl = '';
279    window.nineyi.MWeb.ServiceNumber = '0809092342';
280    window.nineyi.MWeb.ServiceInfo = '週一~週五,09:00~18:00';
281    window.nineyi.MWeb.HomeUrl = '/v2/official';
282    window.nineyi.MWeb.IsLBS = 'True' === "True";
283    window.nineyi.MWeb.IsAntiFraud = 'False';
284    window.nineyi.MWeb.GoogleRecaptchaSiteKey = '';
285    window.nineyi.MWeb.IsShowQuestionInsert = 'true' === 'true';
286    window.nineyi.MWeb.IsShowShopIntroduce = 'true' === 'true';
287    window.nineyi.MWeb.IsRememberCreditCard = 'false' === 'true';
288    window.nineyi.MWeb.IsShowChangePassword = 'true' === 'true';
289    window.nineyi.MWeb.IsShowAccountBinding = 'true' === 'true';
290    window.nineyi.MWeb.IsPriceOnTop = 'true' === 'true';
291    window.nineyi.MWeb.IsEnabledNewProductCard = 'true' === 'true';
292    window.nineyi.MWeb.IsEnabledCustomTranslation = 'false' === 'true';
293    window.nineyi.MWeb.EnableSessionExpire = 'True' === 'True';
294    window.nineyi.MWeb.EnableAddressBook = 'True' === 'True';
295    window.nineyi.MWeb.AddressBookVersion = 2;
296    window.nineyi.MWeb.IsEnabledShopReturnGoods = 'True' === 'True';
297    window.nineyi.MWeb.IsEnabledShopChangeGoods = 'False' === 'True';
298    window.nineyi.MWeb.IsEnabledShopCustomReturnGoods = 'False' === 'True';
299    window.nineyi.MWeb.IsEnabledShopCustomChangeGoods = 'False' === 'True';
300    window.nineyi.MWeb.IsEnableStoreCredit = 'False' === 'True';
301    window.nineyi.MWeb.IsShowTradesOrderGroupQRCode = 'False' === 'True';
302    window.nineyi.MWeb.AdministrativeRegionFileUrlPrefix = 'https://static-web.cdn.91app.com/TW/Prod/';
303    window.nineyi.MWeb.CommerceCloudAppApiDomain = 'https://fts-api.91app.com';
304    window.nineyi.MWeb.NySessionToken = '';
305    window.nineyi.MWeb.CommerceCloudCdnApiDomain = 'https://fts-api.91app.com';
306    window.nineyi.MWeb.IsSuggestPriceShowPrice = 'false' === 'true';
307    window.nineyi.MWeb.FtsApiDomain = 'https://fts-api.91app.com';
308    window.nineyi.MWeb.ChatWebSocketDomain = 'wss://frontend-websocket.91app.com/chat';
309    window.nineyi.MWeb.IsEnableShopCustomCurrencyRate = 'False' == 'True';
310    window.nineyi.MWeb.IsEnabledRetailStoreExpress = 'False' == 'True';
311    window.nineyi.MWeb.RetailStoreExpressState = {"IsRetailStoreExpress":false,"LogoUrl":"","HeaderBackgroun
311dColor":""};
312    window.nineyi.MWeb.IsEnableSkuPointsPay = 'False' === 'True';
313    window.nineyi.MWeb.PointsPayDisplayType = 'PointDesc';
314    window.nineyi.MWeb.IsEnableWhatsApp = 'False' === 'True';
315
316    window.nineyi.stackdriverConfig = {
317        name: 'mweb',
318        version: '20260929135318'
319    }
320
321    var referrerUrl = '';
322    document.location.search.replace('?', '').split('&').forEach(function (item) {
323        if (item.match(/^rt=/g)) {
324            referrerUrl = decodeURIComponent(item.split('=')[1]);
325        }
326    });
327    if (!referrerUrl) {
328        referrerUrl = 'https://www.thenorthface.com.tw';
329    }
330    window.nineyi.MWeb.ReferrerUrl = referrerUrl;
331    var QRCodeImage = '<img alt="91mai-qrcode-img" name="91mai_qrcode" src="data:image/gif;base64,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" />';
332    var QRCodeImageSpan = document.createElement('span');
333    QRCodeImageSpan.innerHTML = QRCodeImage;
334    window.nineyi.MWeb.QRCodeImageUrl = QRCodeImageSpan.firstElementChild.src;
335
336    window.nineyi.MWeb.DownloadAppUrl = {
337        ios: 'https://itunes.apple.com/tw/app/id1272031422',
338        android: 'https://play.google.com/store/apps/details?id=com.nineyi.shop.s016525',
339        isDownloadAndroidAPK: 'False' === 'True',
340    }
341    window.nineyi.MWeb.IsEnableFBMessenger = 'False'.toLocaleLowerCase() == 'true';
342    window.nineyi.MWeb.IsEnableFBMessengerNonWorkingTime = 'False'.toLocaleLowerCase() == 'true';
343    window.nineyi.MWeb.FBMessengerWorkingStartWeekDay = '1';
344    window.nineyi.MWeb.FBMessengerWorkingStartTime = '09:00';
345    window.nineyi.MWeb.FBMessengerWorkingEndWeekDay = '5';
346    window.nineyi.MWeb.FBMessengerWorkingEndTime = '18:00';
347    window.nineyi.MWeb.FanGroupUrl = 'https://www.facebook.com/thenorthfacetaiwan';
348    window.nineyi.MWeb.FBAppId = '742990632547123'; // 分享用
349    // FbOfficialAppId: nineyi.webstore.mobilewebmall\WebStore\Frontend\BE\Official\OfficialShopInfoEntity.cs
350    // 單一domain店家:取DB Shop 裡面的資料(同FbAppId),非單一domain店家:取Config裡面 FB.Official.AppId
351    window.nineyi.MWeb.FbOfficialAppId = '742990632547123'; // Fb官網登入用
352    window.nineyi.MWeb.OnlineCRM = '';
353    window.nineyi.MWeb.OnlineCRMCode = '';
354    window.nineyi.MWeb.ShopInstagramUrl = '';
355    var GoogleConversionData = JSON.parse('{"TrackingIdList":["676225245","813811838"],"ShopUseNewCode":true,"ConversionList":[{"Id":"676225245","Label":"RuL-COCv9sgBEN3BucIC","TagType":"GoogleConversionForShoppingCart"},{"Id":"676225245","Label":"5crwCL2z9sgBEN3BucIC","TagType":"GoogleConversionForRegistrationCompleted"},{"Id":"813811838","Label":"KYwACJyit34Q_pCHhAM","TagType":"GoogleConversionForPayFinish"},{"Id":"676225245","Label":"cv9lCKKS68gBEN3BucIC","TagType":"GoogleConversionForPayFinish"}]}');
356    var GoogleConversionList;
357    if(GoogleConversionData){
358        GoogleConversionList = GoogleConversionData.ConversionList;
359    }
360    window.nineyi.MWeb.GoogleConversionList = GoogleConversionList
361    var GoogleConversionData = JSON.parse('{"TrackingIdList":["676225245","813811838"],"ShopUseNewCode":true,"ConversionList":[{"Id":"676225245","Label":"RuL-COCv9sgBEN3BucIC","TagType":"GoogleConversionForShoppingCart"},{"Id":"676225245","Label":"5crwCL2z9sgBEN3BucIC","TagType":"GoogleConversionForRegistrationCompleted"},{"Id":"813811838","Label":"KYwACJyit34Q_pCHhAM","TagType":"GoogleConversionForPayFinish"},{"Id":"676225245","Label":"cv9lCKKS68gBEN3BucIC","TagType":"GoogleConversionForPayFinish"}]}');
362    var GoogleConversionDataShopUseNewCode;
363    if(GoogleConversionData){
364        GoogleConversionDataShopUseNewCode = GoogleConversionData.ShopUseNewCode;
365    }
366    window.nineyi.MWeb.GoogleConversionShopUseNewCode = GoogleConversionDataShopUseNewCode;
367    window.nineyi.MWeb.Market = 'TW';
368    window.nineyi.MWeb.IsAdobeTrackerShop = 'False';
369    window.nineyi.MWeb.SoldOutType = 'BackInStockAlert'; // 商品缺貨顯示
370    window.nineyi.MWeb.SalesMarketSettings = {"SupplierId":15638,"SalesMarket":"TW","SalesCurrency":"TWD","CountryCode":"886","CurrencySymbol":"NT$","CurrencyDecimalDigits":0,"CurrencyDecimalSeparator":".","CurrencyDigitGroupSeparator":",","CurrencyNameKey":""};
371    /**
372    initialAngularLocale
373    */
374    window.nineyi.MWeb.CurrentLocale = 'zh-TW';
375    window.nineyi.MWeb.EnableLanguageSwitcher = 'True' === 'True';
376    window.nineyi.MWeb.DefaultLanguageCode = 'zh-TW';
377    window.nineyi.MWeb.AvailableLanguages = [{"Lang":"zh-TW","Display":"中文 (繁體)"}];
378    window.nineyi.MWeb.DefaultCurrency = 'NT$';
379    window.nineyi.MWeb.DefaultCountry = 'TW';
380    window.nineyi.MWeb.DefaultCurrencyCode = 'TWD';
381    window.nineyi.MWeb.EnableJavsScriptCDN = 'True';
382    window.nineyi.MWeb.JavsScriptCDN = '//official-static.91app.com';
383    window.nineyi.MWeb.CssCDNDomain = '//official-static.91app.com';
384    window.nineyi.MWeb.FingerprintTag = '639264883397447499';
385    window.nineyi.MWeb.CurrencyCode = '' || 'TWD';
386    window.nineyi.MWeb.isSsoDomain = (/^(service.*.91dev.*|(service.91app.*)|shop-service.pxmart.com.tw)$/ig).test(window.location.hostname);
387    window.nineyi.MWeb.isCustomizedPrivacyPolicy = '';
388    window.nineyi.MWeb.PrivacyPolicyFilePath = '';
389    Object.freeze(window.nineyi.MWeb);
390
391    window.nineyi.i18n = window.nineyi.i18n || {};
392    window.nineyi.i18n.isEnableCurrency = !window.nineyi.MWeb.isSsoDomain && 'False'.toLocaleLowerCase() == 'true';
393    window.nineyi.i18n.defaultCurrency = 'TWD';
394    window.nineyi.i18n.preferredCurrency = docCookies.getItem('currency') || window.nineyi.i18n.defaultCurrency;
395    window.nineyi.i18n.availableCurrencies = ["TWD"];
396    window.nineyi.i18n.isEnableLanguage = !window.nineyi.MWeb.isSsoDomain && 'True'.toLocaleLowerCase() == 'true';
397    window.nineyi.i18n.defaultLanguage = 'zh-TW'
398    window.nineyi.i18n.availableLanguages = ["zh-TW"];
399    window.nineyi.i18n.salesMarketSettings = {
400        salesMarket: 'TW',
401        salesCurrency: 'TWD'
402    };
403    (function(n) {
404        var allLanguages = [{"Lang":"en-US","Display":"English (US)"},{"Lang":"zh-TW","Display":"中文 (繁體)"},{"Lang":"zh-HK","Display":"中文 (香港)"},{"Lang":"zh-CN","Display":"中文 (简体)"},{"Lang":"ms-MY","Display":"Bahasa Melayu"},{"Lang":"ja-JP","Display":"日本語"},{"Lang":"th-TH","Display":"ไทย"}];
405        n.i18n.allLanguages = allLanguages.map(function (item) {
406            return {
407                lang: item.Lang,
408                display: item.Display
409            };
410        });
411    })(window.nineyi);
412    window.nineyi.tracking = {
413        dataLayer: function (key, val){
414                const dataLayers = window.nineyi.tracking.dataLayer.dataLayers;
415                dataLayers[key] = dataLayers[key] || {};
416                dataLayers[key] = val;
417                const subscribes = window.nineyi.tracking.dataLayer.subscribes;
418                subscribes[key] = subscribes[key] || [];
419                subscribes[key].forEach(function(fn){
420                    fn(val);
421                });
422        },
423        subscribe: function(key, callback){
424            const subscribes = window.nineyi.tracking.dataLayer.subscribes;
425            subscribes[key] = subscribes[key] || [];
426            subscribes[key].push(callback);
427        }
428    };
429    window.nineyi.tracking.dataLayer.dataLayers = {};
430    window.nineyi.tracking.dataLayer.subscribes = {};
431
432    window.fbAsyncInit = function() {
433        FB.init({
434          appId: window.location.pathname !== '/V2/Login/Index/' && !/^\/V2\/VipMember\/AccountBinding\/?$/.test(window.location.pathname)
435            ? '742990632547123' : '742990632547123',
436          autoLogAppEvents: true,
437          xfbml: true,
438          version: 'v2.10'
439        });
440        console.log('InitialSetting: FB initFaceBookUI ok');
441    };
442</script>
442
443<!-- END initial mweb constant -->
444
445        
446
447
448
449        
449<script type='text/javascript'>
450            var appInsights=window.appInsights||function(config)
451            {
452                function r(config){ t[config] = function(){ var i = arguments; t.queue.push(function(){ t[config].apply(t, i)})} }
453                var t = { config:config},u=document,e=window,o='script',s=u.createElement(o),i,f;for(s.src=config.url||'//az416426.vo.msecnd.net/scripts/a/ai.0.js',u.getElementsByTagName(o)[0].parentNode.appendChild(s),t.cookie=u.cookie,t.queue=[],i=['Event','Exception','Metric','PageView','Trace','Ajax'];i.length;)r('track'+i.pop());return r('setAuthenticatedUserContext'),r('clearAuthenticatedUserContext'),config.disableExceptionTracking||(i='onerror',r('_'+i),f=e[i],e[i]=function(config, r, u, e, o) { var s = f && f(config, r, u, e, o); return s !== !0 && t['_' + i](config, r, u, e, o),s}),t
454            }({
455                instrumentationKey:'80d00903-800e-47a0-8776-3b3493a1b234'
456            });
457
458            window.appInsights=appInsights;
459            appInsights.trackPageView();
460        </script>
460
461        
461<script async defer src="https://connect.facebook.net/zh_TW/sdk.js"></script>
461
462
463        
464
465<script>
466    (function (window, document, enabled) {
467        window.nineyi = window.nineyi || {};
468        if (window.nineyi.AwsWafClient) return;
469        if (!window.Promise) {
470            // Promise is required by the public bridge contract. Leaving the
471            // optional bridge undefined keeps legacy browsers fail-open.
472            return;
473        }
474
475        var readyResolve;
476        var tokenRequest = null;
477        var sdkTokenRequest = null;
478        var tokenCookieName = 'aws-waf-token';
479        var client = {
480            status: enabled ? 'sdk-loading' : 'disabled',
481            lastErrorCode: null,
482            ready: new Promise(function (resolve) { readyResolve = resolve; }),
483            getToken: getToken
484        };
485        // InitialReactSetting freezes nineyi.MWeb. Keep this mutable runtime bridge
486        // on the nineyi root so every layout exposes the same public contract.
487        window.nineyi.AwsWafClient = client;
488
489        function finishReady(status, errorCode) {
490            client.status = status;
491            client.lastErrorCode = errorCode || null;
492            readyResolve(status);
493        }
494
495        function withTimeout(promise, errorCode) {
496            return new Promise(function (resolve) {
497                var settled = false;
498                var timer = window.setTimeout(function () {
499                    settled = true;
500                    client.lastErrorCode = errorCode;
501                    resolve(null);
502                }, 5000);
503                Promise.resolve(promise).then(function (value) {
504                    if (!settled) {
505                        settled = true;
506                        window.clearTimeout(timer);
507                        if (client.status === 'ready') {
508                            client.lastErrorCode = null;
509                        }
510                        resolve(value || null);
511                    }
512                }, function () {
513                    if (!settled) {
514                        settled = true;
515                        window.clearTimeout(timer);
516                        client.lastErrorCode = errorCode;
517                        resolve(null);
518                    }
519                });
520            });
521        }
522
523        function getTokenFromCookie() {
524            var cookiePrefix = tokenCookieName + '=';
525            var cookies = document.cookie ? document.cookie.split(';') : [];
526            for (var index = 0; index < cookies.length; index++) {
527                var cookie = cookies[index].replace(/^\s+/, '');
528                if (cookie.indexOf(cookiePrefix) === 0) {
529                    return cookie.substring(cookiePrefix.length) || null;
530                }
531            }
532            return null;
533        }
534
535        function getToken() {
536            if (client.status === 'disabled' || client.status === 'failed' || client.status === 'unsupported') {
537                return Promise.resolve(null);
538            }
539            if (tokenRequest) return tokenRequest;
540            tokenRequest = withTimeout(client.ready.then(function () {
541                if (client.status !== 'ready' || !window.AwsWafIntegration || !window.AwsWafIntegration.getToken) {
542                    return null;
543                }
544                try {
545                    // The AWS SDK promise cannot be cancelled. Retain one underlying call
546                    // after caller timeout so repeated requests cannot accumulate SDK calls.
547                    if (!sdkTokenRequest) {
548                        sdkTokenRequest = Promise.resolve(window.AwsWafIntegration.getToken()).then(function (token) {
549                            sdkTokenRequest = null;
550                            // Some SDK versions persist a valid token cookie but fulfill
551                            // getToken() without a value. Read the SDK-managed cookie so
552                            // clients that cannot send it can use the WAF token header.
553                            return typeof token === 'string' && token ? token : getTokenFromCookie();
554                        }, function (error) {
555                            sdkTokenRequest = null;
556                            throw error;
557                        });
558                    }
559                    return sdkTokenRequest;
560                } catch (error) {
561                    client.lastErrorCode = 'token-failed';
562                    return null;
563                }
564            }), 'token-failed').then(function (token) {
565                tokenRequest = null;
566                return token || null;
567            }, function () {
568                tokenRequest = null;
569                return null;
570            });
571            return tokenRequest;
572        }
573
574        if (!enabled) {
575            finishReady('disabled');
576            return;
577        }
578
579        var loadCompleted = false;
580        client.handleSdkLoad = function () {
581            if (loadCompleted) return;
582            loadCompleted = true;
583            if (!window.AwsWafIntegration || !window.AwsWafIntegration.getToken) {
584                finishReady('unsupported', 'sdk-unsupported');
585                return;
586            }
587            finishReady('ready');
588            client.getToken();
589        };
590        client.handleSdkError = function () {
591            if (loadCompleted) return;
592            loadCompleted = true;
593            finishReady('failed', 'sdk-load-failed');
594        };
595    })(window, document, true);
596</script>
596
597    
597<script id="nineyi-aws-waf-challenge-sdk"
598            src="https://c0ec845e2bc1.edge.sdk.awswaf.com/c0ec845e2bc1/5af553e3b176/challenge.js"
599            defer
600            onload="window.nineyi.AwsWafClient.handleSdkLoad()"
601            onerror="window.nineyi.AwsWafClient.handleSdkError()"></script>
601
602
603    </head>
604    <body class="">
vendor: 85 bytes, lines 604-607
604
605        
606<noscript>
607    <iframe src="https://www.googletagmanager.com/ns.html?id=
607GTM-TD6HZH3
vendor: 109 bytes, lines 607-611
607" height="0" width="0"
608        style="display:none;visibility:hidden"></iframe>
609</noscript>
610
611            
611<div id="root"></div>
612        <!-- StackDriver Reporter Start -->
613        
613<script>
614        window.nineyi.env = "Prod";
615        </script>
615
616        <!-- tracking sdk-->
617        
617<script src='https://tracking-client.91app.com/tracking-service/sdk/ec/latest/main.min.js?v=020260929135318'></script>
617
618        <!-- line express sdk-->
619        <!-- 讀取外部 CDN -->
620        
620<script src='https://cms-static.cdn.91app.com/lib/polyfill.js'></script>
620
621        <!-- 讀取CMS CDN -->
622        
622<script defer src='https://cms-static.cdn.91app.com/lib/react/16.14.0/umd/react.production.min.js'></script>
622
623        
623<script defer src='https://cms-static.cdn.91app.com/lib/react-dom/16.14.0/umd/react-dom.production.min.js'></script>
623
624        
624<script defer src='https://cms-static.cdn.91app.com/lib/react-redux/7.2.3/react-redux.min.js'></script>
624
625        
625<script defer src='https://cms-static.cdn.91app.com/lib/lodash/4.17.21/lodash.min.js'></script>
625
626        
626<script defer src='https://cms-static.cdn.91app.com/lib/jsonpath/1.1.1/jsonpath.min.js'></script>
626
627
628            
628<script defer src='//official-static.91app.com/V2/Scripts/dist/v-639264883397447499-v/js/desktop/manifest.js?v=020260929135318'></script>
628
629            
629<script defer src='//official-static.91app.com/V2/Scripts/dist/v-639264883397447499-v/js/desktop/vendor-mweb.js?v=020260929135318'></script>
629
630            
630<script defer src='//official-static.91app.com/V2/Scripts/dist/v-639264883397447499-v/js/desktop/nine1.js?v=020260929135318'></script>
630
631            
631<script defer src='//official-static.91app.com/V2/Scripts/dist/v-639264883397447499-v/js/desktop/themecore.js?v=020260929135318'></script>
631
632
633        
634
635
636<script defer src='//official-static.91app.com/V2/Scripts/dist/v-639264883397447499-v/js/desktop/officialBrandStory.js?v=020260929135318'></script>
636
637
638
639
640        
641        
642        
643
644<!-- Start of Omnichat code -->
645<script>
646  var a = document.createElement('a')
647  a.setAttribute('href', 'javascript:;')
648  a.setAttribute('id', 'easychat-floating-button')
649  var img = document.createElement('img')
650  img.src = 'https://chat-plugin.easychat.co/icon.svg'
651  a.appendChild(img)
652  var span = document.createElement('span')
653  span.setAttribute('id', 'easychat-unread-badge')
654  span.setAttribute('style', 'display: none')
655  var d1 = document.createElement('div')
656  d1.setAttribute('id', 'easychat-close-btn')
657  d1.setAttribute('class', 'easychat-close-btn-close')
658  var d2 = document.createElement('div')
659  d2.setAttribute('id', 'easychat-chat-dialog')
660  d2.setAttribute('class', 'easychat-chat-dialog-close')
661  var ifrm = document.createElement('iframe')
662  ifrm.setAttribute('id', 'easychat-chat-dialog-iframe')
663  ifrm.setAttribute('src', 'https://client-chat.easychat.co/?appkey=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0ZWFtTmFtZSI6IlRoZSBOb3J0aCBGYWNlIn0.0_nqctzdd-0mXQ9mQFJnCT7HhWEtTaRMWGpz4a5S_Nk&clientId=&lang=zh-Hant')
664  ifrm.style.width = '100%'
665  ifrm.style.height = '100%'
666  ifrm.style.frameborder = '0'
667  ifrm.style.scrolling = 'on'
668  d2.appendChild(ifrm)
669  document.body.appendChild(a)
670  document.body.appendChild(span)
671  document.body.appendChild(d1)
672  document.body.appendChild(d2)</script>
vendor: 2 bytes, line 672
672
673<script src='https://chat-plugin.easychat.co/easychat.js'></script>
673
674<style>
675    #easychat-floating-button, #easychat-floating-button-left {
676        display: none !important;
677    }
678</style>
679<!-- End of Omnichat code -->
680
681
682        <!-- 取得所有themecore的script位置 -->
683        
683<script>
684            window.nineyi.externalScripts = {
685                success: [],
686                error: [],
687            };
688            document.querySelectorAll('script').forEach((script) => {
689                script.addEventListener('load', (event) => {
690                    window.nineyi.externalScripts.success.push(script.src);
691                });
692                script.addEventListener('error', (event) => {
693                    window.nineyi.externalScripts.error.push(script.src);
694                });
695            });
696        </script>
696
697
698    </body>
699</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.