h5-cli
Version:
hello
98 lines (90 loc) • 5.43 kB
JavaScript
;
;(function () {
/**
\u7528\u4e8e\u5411\u670d\u52a1\u5668\u53d1\u9001\u57cb\u70b9
*/
var track = {
//\u6bcf\u4e2a\u9875\u9762\u53ea\u8c03\u7528\u4e00\u6b21
sendPV: function sendPV() {
var uid = document.cookie.match(/[^u]uid=(\d+)/); //[1];
uid = uid ? uid[1] : undefined;
var uuid = document.cookie.match(/uuid=([0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12})/);
uuid = uuid ? uuid[1] : undefined;
var uuidTime = document.cookie.match(/uuidTime=(\d+)/); //[1];
uuidTime = uuidTime ? uuidTime[1] : undefined;
var refererSPM = window.location.search.match(/spm=([\w\.\-\_]+)/);
refererSPM = refererSPM ? refererSPM[1] : undefined;
var spm = document.querySelectorAll("meta[name=spm-id]");
spm = spm.length ? spm[0].content : undefined;
var performance = window.performance.timing;
var param = {
"spm": spm,
"refererSPM": refererSPM,
"referer": encodeURIComponent(document.referrer || document.referer || ""), // \u6765\u6e90URL
"uid": uid, // \u7528\u6237\u5e73\u53f0\u7528\u6237id
"uuid": uuid,
"uuidTime": uuidTime,
"resolution": window.screen.width + "x" + window.screen.height,
"connectEnd": performance.connectEnd, // \u8fde\u63a5\u8bf7\u6c42\u5f00\u59cb\u65f6\u95f4\uff081453187966860\uff09
"connectStart": performance.connectStart, // \u8fde\u63a5\u8bf7\u6c42\u7ed3\u675f\u65f6\u95f4\uff081453187966825\uff09
"domComplete": performance.domComplete, // DOM\u5b8c\u6210\u65f6\u95f4(1453187967516)
"domContentLoadedEventEnd": performance.domContentLoadedEventEnd, // DOM\u4e8b\u4ef6\u5b8c\u6210\u65f6\u95f4(1453187967374)
"domContentLoadedEventStart": performance.domContentLoadedEventStart, // DOM\u65f6\u95f4\u5f00\u59cb\u65f6\u95f4\uff081453187967283\uff09
"domInteractive": performance.domInteractive, // DOM Ready\u65f6\u95f4\uff081453187967283\uff09
"domLoading": performance.domLoading, // DOM loading\u72b6\u6001\u65f6\u95f4(1453187966969 )
"domainLookupEnd": performance.domainLookupEnd, // DNS\u67e5\u8be2\u7ed3\u675f\u65f6\u95f4 \uff081453187966825\uff09
"domainLookupStart": performance.domainLookupStart, // DNS\u67e5\u8be2\u5f00\u59cb\u65f6\u95f41453187966825
"fetchStart": performance.fetchStart, // fetchStart\u7f13\u5b58\u68c0\u67e5\uff081453187966487\uff09
"loadEventEnd": performance.loadEventEnd, // \u6587\u6863onload\u7ed3\u675f\uff081453187967516\uff09
"loadEventStart": performance.loadEventStart, // \u6587\u6863onload\u5f00\u59cb 1453187967516
"navigationStart": performance.navigationStart, // \u6d4f\u89c8\u5668\u5f00\u59cb\u65f6\u95f4\uff081453187966487\uff09
"redirectEnd": performance.redirectEnd, // \u91cd\u5b9a\u5411\u7ed3\u675f 0
"redirectStart": performance.redirectStart, // \u91cd\u5b9a\u5411\u5f00\u59cb 0
"requestStart": performance.requestStart, // \u6587\u6863\u8bf7\u6c42\u5f00\u59cb\u7684\u65f6\u95f4 1453187966860
"responseEnd": performance.responseEnd, // \u6570\u636e\u63a5\u6536\u7ed3\u675f\u7684\u65f6\u95f4 1453187967004
"responseStart": performance.responseStart, // \u6570\u636e\u63a5\u6536\u5f00\u59cb\u65f6\u95f4 1453187966962
"secureConnectionStart": performance.secureConnectionStart, // SSL\u63e1\u624b\u65f6\u95f4 0
"unloadEventEnd": performance.unloadEventEnd, // \u524d\u4e00\u4e2a\u9875\u9762\u7684\u5378\u8f7d\u7ed3\u675f 0
"unloadEventStart": performance.unloadEventStart // \u524d\u4e00\u4e2a\u9875\u9762\u7684\u5378\u8f7d\u5f00\u59cb0
};
// console.log( param );
// http://192.168.31.187:3000/
var url = window.config.trackUrl;
var paramStr = "";
var xhr = new XMLHttpRequest();
for (var key in param) {
if (param[key] != undefined) {
paramStr += key + "=" + param[key] + "&";
}
}
url += paramStr;
xhr.open("GET", url, true);
xhr.withCredentials = true;
xhr.onload = function () {
if (xhr.responseText) {
var ck = JSON.parse(xhr.responseText);
if (ck.uuid) {
document.cookie = "uuid=" + ck.uuid + ";path='/';expires=" + ck.expires;
}
if (ck.uuidTime) {
document.cookie = "uuidTime=" + ck.uuidTime + ";path='/';expires=" + ck.expires;
}
}
};
xhr.send();
}
};
window.addEventListener("load", function () {
track.sendPV();
});
if (typeof define === 'function') {
// AMD. Register as an anonymous module.
define("track", function () {
return track;
});
} else if (typeof module !== 'undefined' && module.exports) {
module.exports = track;
} else {
window.track = track;
}
})();