cps_log.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. // JavaScript Document
  2. var logUa=window.navigator.userAgent.toLowerCase();
  3. var current_id = uuid();
  4. window.track_ids = {
  5. current_id: current_id,
  6. pre_id: ""
  7. }
  8. var pvlog = 0
  9. $(function () {
  10. setTimeout(function () {
  11. if (!pvlog) {
  12. pvlog = 2
  13. cpslog([701])
  14. }
  15. }, 3000)
  16. window.addEventListener('message', function (e) {
  17. if (e.data && e.data.pre_id) {
  18. window.track_ids.pre_id = e.data.pre_id
  19. console.log('pre_id:' + window.track_ids.pre_id)
  20. if (!pvlog) {
  21. pvlog = 1
  22. cpslog([701]);
  23. } else if (pvlog == 2) {
  24. //ERROR事件
  25. }
  26. document.getElementById('iframe').contentWindow.postMessage({current_id: current_id}, '*');
  27. }
  28. }, false);
  29. $('#cps-log').append('<iframe src="' + window.log_iframe_host + '/cps_log.html?v=' + window.site_version + '" id="iframe" style="display: none"></iframe>');
  30. })
  31. function getBrowser(){
  32. //1是ios 2是android 3其他
  33. if (/iphone|ipad|ipod/.test(logUa)) {
  34. return 1;
  35. } else if (/android|adr/.test(logUa)) {
  36. return 2;
  37. }else{
  38. return 3;
  39. }
  40. }
  41. function getAmbient(){
  42. //1微信 2qq 3其他
  43. if (/micromessenger/.test(logUa)) {
  44. return 1;
  45. } else if (/\sqq\//.test(logUa)) {
  46. return 2;
  47. }else{
  48. return 3;
  49. }
  50. }
  51. function getPageName(){
  52. //当前页面name 无就返回''
  53. var logPathname = window.location.pathname,spname='';
  54. if(logPathname.length>1){
  55. spname = logPathname.substring(logPathname.lastIndexOf('/')+1,logPathname.length);
  56. }
  57. return spname;
  58. }
  59. //判断网络链接环境
  60. function checkConnection(ua){
  61. var arra = ['wifi','4g','3g','2g'];
  62. for(var check in arra){
  63. if(ua.indexOf(arra[check]) > -1){
  64. return arra[check];
  65. }
  66. }
  67. return 'other'
  68. }
  69. //将query转化为对象
  70. function getWindowQueryObject() {
  71. var queryStr = window.location.search.replace('?', '');
  72. var returnObject = {};
  73. if (queryStr) {
  74. var list = queryStr.split('&');
  75. $.each(list, function (indexInArray) {
  76. var item = list[indexInArray].split('=');
  77. returnObject[item[0]] = item[1];
  78. })
  79. }
  80. return returnObject;
  81. }
  82. var logDataList = []
  83. //cpslog([701]);
  84. //cpslog([702,{map},zone]);
  85. //cpslog([703,{map},event]);
  86. function cpslog(arr, callback){
  87. var logPathname = window.location.pathname.toLowerCase();
  88. var logUserId = $.fn.cookie("user_id");
  89. var logsearch = window.location.search;
  90. var snetwork = checkConnection(logUa);
  91. logsearch = logsearch.substring(1,logsearch.length);
  92. var logData={
  93. tag:arr[0],
  94. 'theme':theme,
  95. "uid":logUserId || '',
  96. "openid":$.fn.cookie("openid")||'',
  97. "vt":$.fn.cookie("visitor")||'',
  98. 'os':getBrowser(),
  99. 'page':logPathname,
  100. "ctx":getAmbient(),
  101. "host": document.domain,
  102. 'admin_id':($.fn.cookie('agent_id') && $.fn.cookie('agent_id') != '0') ? $.fn.cookie('agent_id'):($.fn.cookie('channel_id')||''),
  103. 'channel_id':$.fn.cookie('channel_id')||'',
  104. 'agent_id':$.fn.cookie('agent_id')||'',
  105. 'referral_id':commont.getQueryString('referral_id', logsearch, '&')||$.fn.cookie('referral_id')||'',
  106. "map":getWindowQueryObject(),
  107. "track":{},
  108. "ext":{},
  109. }
  110. logData.map = $.extend(logData.map, window.map);
  111. var ext_cookie = $.fn.cookie('ext')
  112. if (ext_cookie) {
  113. try{
  114. logData.ext = $.extend(logData.ext, $.parseJSON(ext_cookie));
  115. } catch(e) {
  116. }
  117. }
  118. logData.track = $.extend(logData.track, window.track);
  119. if (arr.length >= 2 && arr[1]) {
  120. logData = $.extend(logData, arr[1]);
  121. }
  122. if(logData.tag==702){
  123. logData['zone']=arr[2];
  124. }
  125. if(logData.tag==703){
  126. logData['event']=arr[2];
  127. }
  128. logData.network = snetwork;
  129. logDataList.push({
  130. logData: logData,
  131. callback: callback
  132. })
  133. postlog();
  134. }
  135. function postlog() {
  136. var item = logDataList.splice(0, 1).pop()
  137. var logData = item.logData
  138. var logcallback = item.callback
  139. logData.map = $.extend(logData.map, window.track_ids);
  140. var sLogData = JSON.stringify(logData);
  141. $.ajax({
  142. url: window.log_host + '/h5cps.php?json=' + encodeURIComponent(sLogData),
  143. xhrFields: {
  144. withCredentials: true
  145. },
  146. type: 'post',
  147. success: function () {
  148. if ($.isFunction(logcallback)) {
  149. logcallback();
  150. }
  151. },
  152. error: function () {
  153. if ($.isFunction(logcallback)) {
  154. logcallback();
  155. }
  156. }
  157. });
  158. }
  159. function uuid() {
  160. var s = [];
  161. var hexDigits = "0123456789abcdef";
  162. for (var i = 0; i < 36; i++) {
  163. s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
  164. }
  165. s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
  166. s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
  167. s[8] = s[13] = s[18] = s[23] = "-";
  168. var uuid = s.join("");
  169. return uuid;
  170. }
  171. //书籍点击行为记录
  172. $(document).delegate('.section-data', 'click', function () {
  173. var data = {};
  174. data.url = window.location.href;
  175. var list = ['book_id', 'zone'];
  176. var that = $(this);
  177. $.each(list, function (k, v) {
  178. if (that.data(v) !== undefined) {
  179. data[v] = that.data(v);
  180. } else {
  181. data[v] = '';
  182. }
  183. });
  184. if (that.data('adid') !== undefined) {
  185. data.adid = that.data('adid');
  186. } else{
  187. var section = $(this).closest('.section-block');
  188. if (section.data('swiper-slide-index') !== undefined) {
  189. data.adid = section.data('swiper-slide-index');
  190. }else{
  191. data.adid = section.index();
  192. }
  193. }
  194. data.pre_id = window.track_ids.pre_id
  195. data.current_id = window.track_ids.current_id
  196. $.ajax({
  197. data: data,
  198. url: '/index/book/savebookinfo',
  199. type: 'post',
  200. success: function (data) {
  201. console.log(data);
  202. },
  203. error: function (msg) {
  204. console.log(msg);
  205. }
  206. });
  207. });