(function () { var STORE_HOST = 'store.paperglass.jp'; // store 上に配置した store-redirect-map.json のパスに合わせて変更する var REDIRECT_MAP_URL = 'https://store.paperglass.jp/store-redirect-map.json'; function normalize(pathname) { return pathname.replace(/\/$/, '') || '/'; } function attachInterceptor(redirectMap) { document.addEventListener('click', function (e) { var a = e.target.closest('a'); if (!a) return; var href = a.getAttribute('href'); if (!href) return; var url; try { url = new URL(href, location.href); } catch (err) { return; } // store.paperglass.jp へのリンクのみ対象 if (url.hostname !== STORE_HOST) return; var destination = redirectMap[normalize(url.pathname)]; // リストにないURLはそのまま通す if (destination === undefined) return; e.preventDefault(); location.href = 'https://' + STORE_HOST + destination + (url.search || '') + (url.hash || ''); }); } fetch(REDIRECT_MAP_URL) .then(function (res) { return res.json(); }) .then(function (redirectMap) { attachInterceptor(redirectMap); }) .catch(function (err) { console.warn('[store-intercept] store-redirect-map.json の読み込みに失敗しました', err); }); })();