var oSASno = ''; var oSAId = ''; var oEnterId = ''; var isStartSASend = false; var oSA = function (action, data) { switch (action) { case 'enter': oSASend({a: 'enter', action: 'enter', href: location.href, referrer: document.referrer, action_time: oSAGetNowDateTime()}); break; case 'isMember': oSASend({a: 'isMember', action: 'isMember'}); break; case 'playVideo': oSASend({a: 'playVideo', action: 'playVideo', href: data.video, referrer: location.href, action_time: oSAGetNowDateTime()}); break; case 'click': oSASend({a: 'click', action: 'click', href: data.action, referrer: location.href, action_time: oSAGetNowDateTime()}); break; case 'exit': oSASend({a: 'exit', action: 'exit', action_time: oSAGetNowDateTime()}); break; case 'sa_id': return oSAId; break; case 'enter_id': return oEnterId; break; } }; var oSASend = function (sendData) { var pageData = { p: 'sa', sno: oSASno, enter_id: oEnterId }; var data = {}; $.extend(data, sendData, pageData); if (typeof (Storage) != 'undefined') { var SALocalKey = makeSALocalId(6); addSALocalItme(SALocalKey, data); } else { oSAAjax(data); } }; function addSALocalItme (localKey, data) { localStorage.setItem(localKey, JSON.stringify(data)); startSendSA(); } function oSAAjax(data) { var xhr = $.ajax('https://347.com.tw/ajax/ajax.php', { async: true, cache: false, crossDomain: true, data: data, method: 'POST', xhrFields: { withCredentials: true } }); if (data.action == 'enter') { xhr.then(function (rs) { if (rs.result) { oSAId = rs._sa; oEnterId = rs.enter_id; } }) } return xhr; } function oSAGetNowDateTime () { var oSADate = new Date(); var year = oSADate.getFullYear(); var month = oSADate.getMonth() + 1; var day = oSADate.getDate(); var hours = oSADate.getHours(); var minutes = oSADate.getMinutes(); var seconds = oSADate.getSeconds(); return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds; } function oSAClick () { var clickDom = $(this); var isOnce = clickDom.attr('sa-once'); var action = clickDom.attr('sa-click'); oSA('click', {action: action}); if (typeof isOnce != 'undefined') { clickDom.off('click', oSAClick); } } function makeSALocalId (length) { var result = ''; var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789:::::#$%^*)'; var charactersLength = characters.length; for (var i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return 'sa_' + result; } function startSendSA () { if (typeof (Storage) != 'undefined' && isStartSASend !== true) { isStartSASend = true; var findSA = false; for (var i = 0; i < localStorage.length; i++) { if (localStorage.key(i).substring(0, 3) == 'sa_') { var saKey = localStorage.key(i); var saSendData = localStorage.getItem(saKey); findSA = true; saSendData = JSON.parse(saSendData); oSAAjax(saSendData) .done(function () { localStorage.removeItem(saKey); isStartSASend = false; startSendSA(); }); break; } } if (findSA === false) { isStartSASend = false; } } } function ready(fn) { if (document.addEventListener) { //标准浏览器 document.addEventListener('DOMContentLoaded', function () { //注销时间,避免反复触发 document.removeEventListener('DOMContentLoaded', arguments.callee, false); fn(); //执行函数 }, false); } else if (document.attachEvent) { //IE浏览器 document.attachEvent('onreadystatechange', function () { if (document.readyState == 'complete') { document.detachEvent('onreadystatechange', arguments.callee); fn(); //函数执行 } }); } } ready(function () { if (typeof jQuery == 'undefined') { var jQueryScript = document.createElement('script'); jQueryScript.src = "https://347.com.tw/func/jquery/jquery-1.11.0.min.js"; jQueryScript.onload = function () { initSA(); }; document.getElementsByTagName('head')[0].appendChild(jQueryScript); } else { initSA(); } }); function initSA () { oSA('enter'); if (typeof oUser != 'undefined') { oUser.set_onload(function () { if (oUser.is_login()) { oSASno = oUser.user.sno; if (oSAId != '') { oSA('isMember'); } } }); } window.addEventListener('beforeunload', function (event) { oSA('exit'); }); $('[sa-click]').on('click', oSAClick); }