用戶行爲分析 無埋點代碼

1、用戶行爲分析系統代碼:

(function () {      
    uba_initUbaMask();
    window.onresize = function() {
        uba_initUbaMask();
    };

    document.addEventListener('click', function(e){ 
        var objtag = e.target.nodeName;
        if (objtag != 'BODY' && e.isTrusted) {   
            var params = {};
            var nowDate = new Date();

            //Document對象數據
            params.ct = objtag;
            params.c  = e.target.outerHTML.substr(0,2000);
            params.st = e.target.innerText.substr(0,2000);
            params.t  = 'clk';                 
            params.tm = (nowDate.getFullYear() + '-' + (nowDate.getMonth() + 1) + '-' + nowDate.getDate()+' '+nowDate.getHours()+':'+nowDate.getMinutes()+':'+nowDate.getSeconds());
            if (document) {
                params.domain   = document.domain || '';//獲取域名
                params.url      = document.URL || '';//當前Url地址
                params.title    = document.title || '';
                params.referrer = document.referrer || '';//上一跳路徑
            }

            //Window對象數據
            if (window && window.screen) {
                params.sh = window.screen.height || 0;//獲取顯示屏信息
                params.sw = window.screen.width || 0;
                params.cd = window.screen.colorDepth || 0;
                params.sx = e.screenX|| 0;
                params.sy = e.screenY|| 0;
            }

            /* 獲取區域劃分 */
            params.a1 = uba_getModule(e.target);

            //navigator對象數據
            if (navigator) {
                params.lang = navigator.language || '';//獲取所用語言種類
            }
            //解析_maq配置
            if (_maq) {
                for (var i in _maq) {//獲取埋點階段,傳遞過來的用戶行爲
                    switch (_maq[i][0]) {
                        case '_setAccount':
                            params.u = _maq[i][1];
                            break;
                        case '_ssys':
                            params.s = _maq[i][1];
                            break;
                        default:
                            break;
                    }
                }
            }
            //拼接參數串
            var args = '';
            for (var i in params) {
                if (args != '') {
                    args += '&';
                }
                args += i + '=' + encodeURIComponent(params[i]);//將所有獲取到的信息進行拼接  encodeURIComponent
            }
            
            var img = new Image(1, 1);          
            var src = 'http://218.85.140.83:8000/ua/1.gif?'+ args;          
            img.src = src;
        }
    });

    /* 初始化用戶行爲分析模塊劃分 */
    function uba_initUbaMask() {
        /* 頁面判斷 */
        if (document.URL.indexOf('/wui/index.html#/main/portal/portal-') !== -1) {
            /* 全文檢索 */
            uba_createMask({'selector':'.search', 'path':'全文檢索'});
            uba_createMaskMultiple({'selector':'.search .searchMenuItem', 'path':'全文檢索_', 'textFrom':'title'});

            /* 菜單 START */
            uba_createMask({'selector':'div.powerMenu div:nth-child(1)', 'path':'菜單_首頁'});

            uba_createMask({'selector':'div.powerMenu div:nth-child(2) div.powserMenuItem', 'path':'菜單_流程審批'});
            uba_createMaskMultiple({'selector':'div.powerMenu div:nth-child(2) .xyPowserMenuItem', 'path':'菜單_流程審批_'});

            uba_createMask({'selector':'div.powerMenu div:nth-child(3) div.powserMenuItem', 'path':'菜單_人力自助'});
            uba_createMaskMultiple({'selector':'div.powerMenu div:nth-child(3) .xyPowserMenuItem', 'path':'菜單_人力自助_'});

            uba_createMask({'selector':'div.powerMenu div:nth-child(4) div.powserMenuItem', 'path':'菜單_文檔管理'});
            uba_createMaskMultiple({'selector':'div.powerMenu div:nth-child(4) .xyPowserMenuItem', 'path':'菜單_文檔管理_'});
            
            uba_createMask({'selector':'div.powerMenu div:nth-child(5) div.powserMenuItem', 'path':'菜單_日程管理'});
            uba_createMaskMultiple({'selector':'div.powerMenu div:nth-child(5) .xyPowserMenuItem', 'path':'菜單_日程管理_'});

            uba_createMask({'selector':'div.powerMenu div:nth-child(6) div.powserMenuItem', 'path':'菜單_會議管理'});
            uba_createMaskMultiple({'selector':'div.powerMenu div:nth-child(6) .xyPowserMenuItem', 'path':'菜單_會議管理_'});

            uba_createMask({'selector':'div.powerMenu div:nth-child(7) div.powserMenuItem', 'path':'菜單_技術支持'});
            uba_createMaskMultiple({'selector':'div.powerMenu div:nth-child(7) .xyPowserMenuItem', 'path':'菜單_技術支持_'});
            /* 菜單 END */

            /* 最新動態 */
            uba_createMask({'selector':'#item_8', 'path':'最新動態'});
            uba_createMaskMultiple({'selector':'#titleContainer_8 div[role="tablist"] div[role="tab"] div', 'path':'最新動態_', 'textFrom':'title'});

            /* 工作待辦 */
            uba_createMask({'selector':'#item_17', 'path':'工作待辦'});
            uba_createMask({'selector':'#content_17 li:nth-child(1)', 'path':'工作待辦_公文待辦'});
            uba_createMask({'selector':'#content_17 li:nth-child(2)', 'path':'工作待辦_公文待閱'});
            uba_createMask({'selector':'#content_17 li:nth-child(3)', 'path':'工作待辦_業務審批'});
            uba_createMask({'selector':'#content_17 li:nth-child(4)', 'path':'工作待辦_報賬審批'});
            uba_createMask({'selector':'#content_17 li:nth-child(5)', 'path':'工作待辦_我的郵箱'});

            /* 快捷通道 */
            uba_createMask({'selector':'#item_27', 'path':'快捷通道'});
            uba_createMaskMultiple({'selector':'#item_27 div.portal_fastTrack_item', 'path':'快捷通道_', 'selectByText':true});

            /* 公共信息 */
            uba_createMask({'selector':'#item_6', 'path':'公共信息'});
            uba_createMaskMultiple({'selector':'#titleContainer_6 div[role="tablist"] div[role="tab"] div', 'path':'公共信息_', 'textFrom':'title'});

            /* 黨建及精神文明建設 */
            uba_createMask({'selector':'#item_16', 'path':'黨建及精神文明建設'});
            uba_createMaskMultiple({'selector':'#titleContainer_16 div[role="tablist"] div[role="tab"] div', 'path':'黨建及精神文明建設_', 'textFrom':'title'});

            /* 培訓天地 */
            uba_createMask({'selector':'#item_7', 'path':'培訓天地'});
            uba_createMaskMultiple({'selector':'#titleContainer_7 div[role="tablist"] div[role="tab"] div', 'path':'培訓天地_', 'textFrom':'title'});

            /* 員工心聲 */
            uba_createMask({'selector':'#item_19', 'path':'員工心聲'});
            uba_createMask({'selector':'.employeeHeartFormSubmit', 'path':'員工心聲_提交'});

            /* 專題下載 */
            uba_createMask({'selector':'.specialDownload', 'path':'專題下載'});
            uba_createMaskMultiple({'selector':'.specialDownload li', 'path':'專題下載_', 'textFrom':'title'});

            /* 友情鏈接 */
            uba_createMask({'selector':'.friendlyLink', 'path':'友情鏈接'});
            uba_createMaskMultiple({'selector':'.friendlyLink li', 'path':'友情鏈接_', 'textFrom':'title'});

            /* 集團網站 */
            uba_createMask({'selector':'.companyNetworks', 'path':'集團網站'});
            uba_createMaskMultiple({'selector':'.companyNetworks li', 'path':'集團網站_', 'textFrom':'title'});
        }
    }

    /* 創建遮罩區域
     * selector         元素選擇器
     * path             所屬區域
     * textFrom         元素內容來自text,或者title等
     */
    function uba_createMask(params) {
        var targetDom = document.querySelector(params.selector);
        if (targetDom == null) {
            return false;
        }
        if (params.selectByText) {
            var text = targetDom.innerText;
            targetDom = targetDom.parentNode;
            params.path = params.path + text;
        }
        
        /* 直接修改源代碼的元素 */
        targetDom.setAttribute('uba-path', params.path);
    }
    function uba_createMaskMultiple(params) {
        var targetDomList = document.querySelectorAll(params.selector);
        var num = targetDomList.length;
        if (num <= 0) {
            return false;
        }
        if (params.textFrom == 'title') {
            for (var i = 0; i < num; i++) {
                targetDomList[i].setAttribute('uba-path', params.path + targetDomList[i].getAttribute('title'));
            }
        } else {
            for (var i = 0; i < num; i++) {
                targetDomList[i].setAttribute('uba-path', params.path + targetDomList[i].innerText);
            }
        }
    }

    /* 獲取鼠標點擊所屬模塊 */
    function uba_getModule(target){
        var dom = target;
        var path = dom == null ? null : dom.getAttribute('uba-path');
        while (path == null && dom != document.body && dom != null) {
            dom = dom.parentNode;
            if (dom != null) {
                path = dom.getAttribute('uba-path');
            }
        }
        return path;
    }
})();

 

通過將數據塞入img的src中,進行跨域:

待寫....

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章