1/** 2 * åç·B: B4A ç´ãªã³ã¯ â UTMã»åºåç³»ãã©ã¡ã¼ã¿ã®èªè¾¼æä»ä¸ 3 * 4 * Cookieï¼veriteUtmFirst.readï¼ã® UTM 6 種 + ç¾å¨ãã¼ã¸ URL ã®å¯¾è±¡ãã¼ã 5 * åä¸ãã¼ã¯ URL åªå ï¼PHP verite_reservation_redirect_query_args ã¨åçï¼ã 6 * 7 * åç·Aï¼/reservation/ ä¸ç¶ï¼ã§ã¯ isRelayPage ã®ããã¹ãããã 8 */ 9(function () { 10 'use strict'; 11 12 function runWhenDomReady(fn) { 13 if (document.readyState === 'loading') { 14 document.addEventListener('DOMContentLoaded', fn); 15 } else { 16 fn(); 17 } 18 } 19 20 function getLinks() { 21 return window.veriteReservationLinks || {}; 22 } 23 24 function getAttributionKeys() { 25 var cfg = window.veriteReservationKeys; 26 if (cfg && Array.isArray(cfg.attribution) && cfg.attribution.length > 0) { 27 return cfg.attribution; 28 } 29 if (cfg && Array.isArray(cfg.utm) && cfg.utm.length > 0) { 30 return cfg.utm.slice(); 31 } 32 return [ 33 'utm_source', 34 'utm_medium', 35 'utm_campaign', 36 'utm_content', 37 'utm_term', 38 'utm_id', 39 ]; 40 } 41 42 function readUtmFromCookies() { 43 if (!window.veriteUtmFirst || typeof window.veriteUtmFirst.read !== 'function') { 44 return {}; 45 } 46 var raw = window.veriteUtmFirst.read(); 47 if (!raw || typeof raw !== 'object') { 48 return {}; 49 } 50 return raw; 51 } 52 53 function readParamsFromPageUrl(keys) { 54 var out = {}; 55 var params; 56 var i; 57 try { 58 params = new URLSearchParams(window.location.search); 59 } catch (e) { 60 return out; 61 } 62 for (i = 0; i < keys.length; i++) { 63 var key = keys[i]; 64 if (!params.has(key)) { 65 continue; 66 } 67 var val = params.get(key); 68 if (val != null && val !== '') { 69 out[key] = String(val); 70 } 71 } 72 return out; 73 } 74 75 function collectParams() { 76 var keys = getAttributionKeys(); 77 var fromCookies = readUtmFromCookies(); 78 var fromPage = readParamsFromPageUrl(keys); 79 var merged = {}; 80 var utmKeys = window.veriteReservationKeys && Array.isArray(window.veriteReservationKeys.utm) 81 ? window.veriteReservationKeys.utm 82 : keys; 83 var i; 84 var key; 85 86 for (i = 0; i < utmKeys.length; i++) { 87 key = utmKeys[i]; 88 if (fromCookies[key]) { 89 merged[key] = String(fromCookies[key]); 90 } 91 } 92 93 for (i = 0; i < keys.length; i++) { 94 key = keys[i]; 95 if (fromPage[key]) { 96 merged[key] = fromPage[key]; 97 } 98 } 99 100 return merged; 101 } 102 103 function appendParams(anchor, params) { 104 if (!anchor || !anchor.getAttribute || !params) { 105 return; 106 } 107 try { 108 var u = new URL(anchor.getAttribute('href') || '', window.location.href); 109 var paramKeys = Object.keys(params); 110 var i; 111 for (i = 0; i < paramKeys.length; i++) { 112 var key = paramKeys[i]; 113 if (key === 'cta_from' || key === 'cta_slot') { 114 continue; 115 } 116 if (u.searchParams.has(key)) { 117 continue; 118 } 119 u.searchParams.set(key, params[key]); 120 } 121 anchor.href = u.toString(); 122 } catch (err) { 123 /* ç¡è¦ */ 124 } 125 } 126 127 function apply() { 128 var links = getLinks(); 129 if (typeof links.isRelayPage === 'function' && links.isRelayPage()) { 130 return; 131 } 132 133 var params = collectParams(); 134 if (Object.keys(params).length === 0) { 135 return; 136 } 137 138 var anchors = document.querySelectorAll('a[href]'); 139 var i; 140 for (i = 0; i < anchors.length; i++) { 141 var a = anchors[i]; 142 if (typeof links.shouldSkipAnchor === 'function' && links.shouldSkipAnchor(a)) { 143 continue; 144 } 145 if (typeof links.isHref !== 'function' || !links.isHref(a.href)) { 146 continue; 147 } 148 appendParams(a, params); 149 } 150 } 151 152 runWhenDomReady(apply); 153})();
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.