pointtrack.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. if ("undefined" == typeof trackPoints)
  2. {
  3. var trackPoints = {};
  4. }
  5. window.onload = function (){
  6. var js = document.createElement('script');
  7. js.setAttribute('type', 'text/javascript');
  8. js.setAttribute('src',"https://js.51jobcdn.com/in/js/2016/trace/trackData.js?20180206");
  9. document.getElementsByTagName('head')[0].appendChild(js);
  10. $.each(trackPoints, function(i, n)
  11. {
  12. switch(n.trackType)
  13. {
  14. case '2':
  15. n = initTrackParams(i);
  16. setTimeout(function(){
  17. n.requestFunc(n.rankParamsToStr(n.params, n.paramsRank));
  18. },2000);
  19. break;
  20. case '1':
  21. bindTrack(i);
  22. break;
  23. default:
  24. break;
  25. }
  26. });
  27. var accessLogParam = {
  28. trackType: '2',
  29. elementsStr: "",
  30. paramsRank: ["VerType", "webId", "logTime", "ip", "guid", "domain", "pageCode", "cusParam"],
  31. interfaceKeyword: "_trackPageView",
  32. params: {
  33. VerType: "3",
  34. webId: "2",
  35. },
  36. dealParamsBeforeEvent: function(params){
  37. params['logTime'] = new Date().getTime() + d_system_client_time;
  38. params['ip'] = trackConfig.ip;
  39. params['guid'] = trackConfig.guid;
  40. params['domain'] = trackConfig.domain;
  41. params['pageCode'] = $("#pageCode").length == 0 ? '19999' : $("#pageCode").val();
  42. params['cusParam'] = ["1", trackConfig.accountid, "51job_web", trackConfig.partner, trackConfig.islanding, trackConfig.refdomain].join(String.fromCharCode(22));
  43. return params;
  44. }
  45. }
  46. setTimeout(function(){
  47. n = initTrackParams(accessLogParam);
  48. accessLogParam.requestFunc(n.rankParamsToStr(n.params, n.paramsRank));
  49. },2000);
  50. };
  51. function manualTrack(trackName)
  52. {
  53. var changeParams = arguments[1] ? arguments[1] : "";
  54. trackSettings = initTrackParams(trackName, changeParams);
  55. trackSettings.requestFunc(trackSettings.rankParamsToStr(trackSettings.dealParamsAfterEvent(trackSettings.params,this), trackSettings.paramsRank));
  56. }
  57. function bindTrack(trackName)
  58. {
  59. var n = initTrackParams(trackName);
  60. $(n.elementsStr).each(function(){
  61. $(this).click(function(){
  62. n.requestFunc(n.rankParamsToStr(n.dealParamsAfterEvent(n.params,this), n.paramsRank));
  63. });
  64. });
  65. }
  66. function initTrackParams(trackName)
  67. {
  68. var changeParams = arguments[1] ? arguments[1] : "";
  69. if(typeof trackName === "object")
  70. {
  71. trackSettings = trackName;
  72. }
  73. else
  74. {
  75. trackSettings = trackPoints[trackName];
  76. }
  77. if("undefined" == typeof trackSettings.dealParamsBeforeEvent)
  78. {
  79. trackSettings.dealParamsBeforeEvent = function(params){
  80. return params;
  81. }
  82. }
  83. if("undefined" == typeof trackSettings.dealParamsAfterEvent)
  84. {
  85. trackSettings.dealParamsAfterEvent = function(params){
  86. return params;
  87. }
  88. }
  89. if("undefined" == typeof trackSettings.requestFunc)
  90. {
  91. trackSettings.requestFunc = function(params){
  92. _tkd.push(params);
  93. }
  94. }
  95. if("undefined" == typeof trackSettings.rankParamsToStr)
  96. {
  97. if("undefined" == typeof trackSettings.interfaceKeyword)
  98. {
  99. trackSettings.interfaceKeyword = '_trackEvent';
  100. }
  101. switch(trackSettings.interfaceKeyword)
  102. {
  103. case '_trackPageView':
  104. trackSettings.rankParamsToStr = function(params, rankArr){
  105. var paramsStr = "";
  106. $.each(rankArr, function(i, n){
  107. paramsStr += n + "=" + encodeURIComponent(params[n]) + "&";
  108. });
  109. return ['_trackPageView', paramsStr.substr(0, paramsStr.length - 1)];
  110. }
  111. break;
  112. default:
  113. trackSettings.rankParamsToStr = function(params, rankArr){
  114. var paramsStr = "";
  115. $.each(rankArr, function(i, n){
  116. paramsStr += n + "=" + encodeURIComponent(params[n]) + "&";
  117. });
  118. return ['_trackEvent', paramsStr.substr(0, paramsStr.length - 1)];
  119. }
  120. break;
  121. }
  122. }
  123. trackSettings.params = trackSettings.dealParamsBeforeEvent(trackSettings.params);
  124. if(changeParams != "")
  125. {
  126. $.extend(trackSettings.params, changeParams);
  127. }
  128. return trackSettings;
  129. }