var default_data = { tracking_code:null, access_data:{ page_category_list:[] }, line_user_id:null }; window.score_data = merge(default_data, window.score_data); window.score_data.common_function = { call_score: function(type, func) { window.score_data = window.score_data || {}; if (!window.score_data.tracking_lock) { window.score_data.tracking_lock = type; if (document.readyState !== "loading") { setTimeout(func); } else { var complete_event = function() { document.removeEventListener("DOMContentLoaded", complete_event); window.removeEventListener("load", complete_event); func(); }; document.addEventListener("DOMContentLoaded", complete_event); window.addEventListener("load", complete_event); } return; } setTimeout(function(){ window.score_data.common_function.call_score(type, func); }, 50); }, release_lock: function(){ window.score_data.tracking_lock = null; }, set_tracking_code: function(tracking_code){ window.score_data.tracking_code = tracking_code; }, enableScriptTag: function(element) { var script_list = element.getElementsByTagName("script"); for (i = 0; i < script_list.length; i++) { var new_script_tag = document.createElement('script'); new_script_tag.textContent = script_list[i].textContent; document.body.appendChild(new_script_tag); } } }; function get_cookie_array() { var cookie_array = new Array(); if(document.cookie != ""){ var tmp = document.cookie.split(";"); for(var i = 0; i < tmp.length; i++){ var data = tmp[i].split("="); if (data[0].trim() != "u_code") { continue; } cookie_array[data[0]] = decodeURIComponent(data[1]); } } return cookie_array; } function get_cookie_by_key(key) { var cookie_array = get_cookie_array(); return cookie_array[key]; } function set_cookie(key, value, path, expire) { if(!path){ path = "/"; } if(!expire){ expire = 60*60*24*365; } document.cookie = key + "=" + encodeURIComponent(value) + "; path=" + path + "; SameSite=None; Secure; max-age=" + expire; } function get_tracking_code() { var tracking_code = get_cookie_by_key("u_code"); if(tracking_code){ return tracking_code; } return window.score_data.set_tracking_code; } function set_tracking_code(tracking_code) { set_cookie("u_code", tracking_code); var tracking_code_in_cookie = get_cookie_by_key("u_code"); if(!tracking_code_in_cookie){ window.score_data.set_tracking_code = tracking_code; } } function merge() { var args = Array.prototype.slice.call(arguments); var len = args.length; var ret = {}; var itm; for (var i = 0; i < len ; i++) { var arg = args[i]; for (itm in arg) { if (arg.hasOwnProperty(itm)) { ret[itm] = arg[itm]; } } } return ret; } (function(){ var document_download_target_list = []; function init(callback) { var xhr = new XMLHttpRequest(); xhr.open("POST", "https://score.teikokushoin.co.jp/conversion/", true); xhr.onload = function (e) { if (xhr.readyState === 4) { if (xhr.status == 200 || xhr.status == 304) { var result = JSON.parse(xhr.responseText); if (result.success) { set_tracking_code(result.u_code); window.score_data.common_function.release_lock(); document_download_target_list = result.document_download_target_list; if (callback) { callback(); } } } else { console.error(xhr.statusText); } } }; xhr.withCredentials = true; xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); var param = []; var tracking_code = get_tracking_code(); if (tracking_code) { param.push("u_code=" + tracking_code); } var url = location.href; if (url) { param.push("url=" + url); } xhr.send(param.join("&").replace(/%20/g, '+')); } function add_click_event() { // セットした属性を持つ DOM が対象 var target = document.querySelectorAll("a[data-conversion='yes']"); if (target.length != 0) { for (var link_index = 0; link_index < target.length; link_index++) { target[link_index].addEventListener("click", function(e){ e.preventDefault(); e.stopPropagation(); var href = e.currentTarget.getAttribute("href"); var xhr = new XMLHttpRequest(); xhr.open("POST", "https://score.teikokushoin.co.jp/conversion/click", true); xhr.onload = function (e) { if (xhr.readyState === 4) { location.href = href; } }; xhr.withCredentials = true; xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); var param = []; var conversion_id_list = e.currentTarget.getAttribute("data-conversion_id_list") param.push("conversion_id_list=" + conversion_id_list); var href = e.currentTarget.getAttribute("href"); param.push("url=" + href); var klass = e.currentTarget.getAttribute("class"); param.push("class=" + klass); var tracking_code = get_tracking_code(); if (tracking_code) { param.push("u_code=" + tracking_code); } xhr.send(param.join("&").replace(/%20/g, '+')); return false; }); } } } window.score_data.common_function.call_score("conversion", function(){ init(function(){ // 対象の DOM に属性をセット var target_list = []; for (var index in document_download_target_list) { var target; if (document_download_target_list[index]["document_download_type"] == "1") { target = document.querySelectorAll("a[href='" + document_download_target_list[index]["url"] + "']"); } else if (document_download_target_list[index]["document_download_type"] == "2") { var class_list = []; for (var class_key in document_download_target_list[index]["class_list"]) { class_list.push("a." + document_download_target_list[index]["class_list"][class_key] + ""); } target = document.querySelectorAll(class_list.join(", ")); } if (target.length != 0) { for (var link_index = 0; link_index < target.length; link_index++) { target[link_index].setAttribute("data-conversion", "yes") var conversion_id_list = target[link_index].getAttribute("data-conversion_id_list"); add_conversion_id_list = document_download_target_list[index]["id"]; if (conversion_id_list) { add_conversion_id_list = conversion_id_list + "," + add_conversion_id_list } target[link_index].setAttribute("data-conversion_id_list", add_conversion_id_list) } } } add_click_event(); }); }); })();