//指定パラメータの取得 function chatBaGetQueryParams() { const params = new URLSearchParams(window.location.search); return { CDID: params.get('CDID'), ChatbagPvMode: params.get('ChatbagPvMode') }; } // パラメータをチェックして条件に合う場合に分岐 function ChatBagLoadTargetScripts() { const { CDID, ChatbagPvMode } = chatBaGetQueryParams(); let head = document.getElementsByTagName('head')[0]; let script = document.createElement('script'); script.type = "text/javascript"; script.charset = "UTF-8"; var __allow = ["3910","3702","3969","3967","4033","4035","5880","5881"]; var __scn = new URLSearchParams(window.location.search).get('cbscn'); var __id = (__scn && __allow.indexOf(String(__scn)) !== -1) ? String(__scn) : "3141"; if (!isNaN(CDID) && ChatbagPvMode === 'ON') { script.src = "https://sv01.chatbag.jp/testcload2/" + __id + "/"; } else { script.src = "https://sv01.chatbag.jp/cload2/" + __id + "?mode=in"; } head.appendChild(script); } // --- ここから追記:chat_id + URL ごとの挙動上書き(GTMを触らずに制御する) --- var __cbOv = ({"4034":[{"url":"/ikumo_sms_test","pid":"M2008NE","cart":"testitem8","inline":true,"auto":true,"chat":"4035"}],"3702":[{"url":"/ikumo_google_kw_aeon_sp","pid":"M2008NE","cart":"testitem0","scn":"","inline":true,"chat":"3702"}],"3604":[{"url":"/ikumo_google_kw_aeon_sp","pid":"L2009NBft","cart":"testitem0","scn":"5881","inline":true,"chat":"5881"}]})["3141"] || []; var __cbTake = false; (function () { for (var i = 0; i < __cbOv.length; i++) { var o = __cbOv[i]; if (o.url && window.location.href.indexOf(o.url) === -1) { continue; } __cbTake = true; if (o.disable) { return; } // このURLではこのタグを動かさない var ex = o.scn ? ("&cbscn=" + o.scn) : ""; var mk = function (abs) { try { var u = new URL(abs); } catch (e) { return null; } return u.origin + u.pathname + "?&chatcart=" + o.cart + ex + "&firstURL=" + encodeURIComponent(abs); }; var rw = function () { var as = document.getElementsByTagName('a'); for (var k = 0; k < as.length; k++) { var a = as[k]; if (!a.getAttribute('href')) { continue; } var abs = a.href; if (abs.indexOf(o.pid) === -1 || abs.indexOf('chatcart=') !== -1) { continue; } var nu = mk(abs); if (nu) { a.href = nu; } } }; if (o.inline) { // LP上でチャットを開く。 // auto : LPを開いた時点で開く(即ボット) // それ以外 : 該当CTAのクリックで開く(通常ボット)。クリックで遅れて読み込まれた // 場合は、遷移を取り消してから開く var W = window; var boot = function (abs) { if (W.__cbInlineStarted) { return; } W.__cbInlineStarted = true; W.__chatBagBackUrl = mk(abs) || W.__chatBagBackUrl; // フォーム入力段階で使う遷移先 var sc = document.createElement('script'); sc.type = "text/javascript"; sc.charset = "UTF-8"; sc.src = "https://sv01.chatbag.jp/cload2/" + (o.chat || "3141") + "?mode=in"; document.getElementsByTagName('head')[0].appendChild(sc); var t0 = Date.now(); var iv = setInterval(function () { if (W.UriSform && typeof W.UriSform.ChatOpen === 'function') { clearInterval(iv); // LP は width=640 固定なので、チャットを開いている間だけカートと同じ画面設定にする var vp = document.querySelector('meta[name="viewport"]'); var vpOrig = vp ? vp.getAttribute('content') : null; var setVp = function (c) { if (!vp) { vp = document.createElement('meta'); vp.name = 'viewport'; document.head.appendChild(vp); } vp.setAttribute('content', c); }; setVp('width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0'); if (typeof W.UriSform.ChatClose === 'function' && !W.UriSform.__cbVpWrapped) { var origClose = W.UriSform.ChatClose; W.UriSform.ChatClose = function () { var r = origClose.apply(this, arguments); if (vpOrig !== null) { setVp(vpOrig); } return r; }; W.UriSform.__cbVpWrapped = true; } try { W.UriSform.ChatOpen(); } catch (e) { W.location.href = W.__chatBagBackUrl; } } else if (Date.now() - t0 > 8000) { clearInterval(iv); W.location.href = W.__chatBagBackUrl; // 開けなければ従来どおりカートへ } }, 50); }; var reopen = function () { try { if (W.UriSform && typeof W.UriSform.ChatOpen === 'function') { W.UriSform.ChatOpen(); } } catch (e) {} }; var findLink = function () { var as = document.getElementsByTagName('a'); for (var k = 0; k < as.length; k++) { if (as[k].getAttribute('href') && as[k].href.indexOf(o.pid) !== -1) { return as[k].href; } } return null; }; W.__cbInlineClick = W.__cbInlineClick || {}; if (!W.__cbInlineClick[o.pid]) { W.__cbInlineClick[o.pid] = true; document.addEventListener('click', function (ev) { var el = ev.target; while (el && el !== document) { if (el.tagName === 'A' && el.getAttribute('href')) { break; } el = el.parentNode; } if (!el || el === document) { return; } var abs = el.href || ''; if (abs.indexOf(o.pid) === -1) { return; } ev.preventDefault(); if (W.__cbInlineStarted) { reopen(); } else { boot(abs); } }, true); } if (o.auto) { var t1 = Date.now(); var tryAuto = function () { var lk = findLink(); if (lk) { boot(lk); } else if (Date.now() - t1 < 10000) { setTimeout(tryAuto, 200); } }; if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', tryAuto); } else { tryAuto(); } return; } // GTM のクリック発火で読み込まれた場合:遷移を取り消してLP上で開く var dl = W.dataLayer || []; for (var j = dl.length - 1; j >= 0; j--) { var ev2 = dl[j]; if (!ev2 || typeof ev2 !== 'object' || ev2.event !== 'gtm.linkClick') { continue; } var el2 = ev2['gtm.elementUrl']; // すでにページ表示時の待ち受けでチャットを開いている場合は何もしない // (ここで stop すると読み込み中のチャット本体まで止めてしまう) if (el2 && el2.indexOf(o.pid) !== -1 && el2.indexOf('chatcart=') === -1 && !W.__cbInlineStarted) { try { W.stop(); } catch (e) {} boot(el2); } break; } return; } rw(); try { new MutationObserver(rw).observe(document.documentElement, {childList:true, subtree:true}); } catch (e) { setInterval(rw, 1000); } // linkClick で遅れて読み込まれた場合は、クリック先を補正して遷移し直す var dl = window.dataLayer || []; for (var j = dl.length - 1; j >= 0; j--) { var ev = dl[j]; if (!ev || typeof ev !== 'object') { continue; } var el = ev['gtm.elementUrl']; if (!el || el.indexOf(o.pid) === -1) { continue; } if (el.indexOf('chatcart=') !== -1) { break; } var nu2 = mk(el); if (nu2) { window.location.replace(nu2); } break; } return; } })(); if (!__cbTake && (window.parent === window.top || typeof UrichanForceStart !== "undefined")) { ChatBagLoadTargetScripts(); }else{ //Iframeなので無効、または上書き設定が処理済み }