美文网首页
获取渠道来源/判断设备

获取渠道来源/判断设备

作者: 南陈_ | 来源:发表于2018-05-28 09:34 被阅读0次

    渠道--截取url拼接

    先顺一下项目开发前的准备

    如下网址:

    sem.xxxxxx.com
    
    1、用户输入之后,会根据当前设备判断打开pc还是移动端
    2、提交表单时除了基本信息要传项目来源
    ps:项目来源也就是渠道,是用户手动输入的。
    
    例如:sem.xxxxxx.com/?q=123
    
    q为自定义 123是例子
    
    前端要做的就是在他手动输入之后,表单提交后把123要传进后台
    
    有一个坑就是不论页面怎么跳转,q=123 始终都要在网址上,因为这样表单页面才不会因为你页面跳转之后q消失了,而找不到渠道。
    
    下面是获取渠道的方法:

    1、判断设备中的获取渠道

     $.extend({
        getUrlVars: function () {
            var vars = [], hash;
            var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
            for (var i = 0; i < hashes.length; i++) {
                hash = hashes[i].split('=');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        },
        getUrlVar: function (name) {
            return $.getUrlVars()[name];
        }
    });
    function IsPC() {
        var userAgentInfo = navigator.userAgent;
        var Agents = new Array("Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod");
        var flag = true;
        for (var v = 0; v < Agents.length; v++) {
            if (userAgentInfo.indexOf(Agents[v]) > 0) { flag = false; break; }
        }
        return flag;
    }
    function isUndefined(h) {
        var c = $.getUrlVar("q");
        if (typeof c != "undefined") {
            location.href = h + '?q=' + c;
        } else {
            location.href = h;
        }
    };
    if (IsPC()) {
        isUndefined('./pc/index.html')
    } else {
        isUndefined('./m/index.html')
    }
    

    2、页面跳转获取渠道

    //来源渠道
    function getQueryString(name, needdecoed) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        var lh = window.location.search;
        if (needdecoed) {
            lh = decodeURI(window.location.search)
        }
        var r = lh.substr(1).match(reg);
        if (r != null) return unescape(r[2]);
        return null;
    }
    //点击时在要跳转的链接中加入
    $('.oneM_button a').click(function () {
        var q = getQueryString('q');
        $(this).attr('href', './form.html?q=' + q);
    })
    

    3、表单提交中的获取渠道

    //来源渠道
    function getQueryString() {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    };
    
     //提交用户信息
    function submitdata() {
        //判断渠道不为空
        var dataSources = "";
        if (typeof (getQueryString()["q"]) != "undefined") {
            dataSources = getQueryString()["q"];
        }      
        var _data = {
            渠道字段: dataSources, //传入的渠道
        };
        
        //省略ajax...
    }
    

    开发结束之后测试渠道是否正常,不可传入undefined。

    相关文章

      网友评论

          本文标题:获取渠道来源/判断设备

          本文链接:https://www.haomeiwen.com/subject/mbewjftx.html