位置:首页 > JavaScript > JavaScript >

js获取网站搜索来源代码

字号+ 作者:micloud 来源:www.seoalphas.com 2019-07-27 15:01 浏览量:2032

把以下代码引入所有页面,即可实现收集系统来源的功能,在任意页面中都可以使用全局的统一的来源信息

不过下面的代码无法获取到搜索引擎关键词


var args = {
    mySite:"localhost",
    subSite:"子网站,比如移动端: m.xxx.com"
}
var index = (function(a) {
    var c = "";
    var d = args.mySite;
    a(function() {
        var g = function() {
            return function(k, l, j) {
                var h = j * 24 * 60 * 60 * 1000;
                var i = new Date();
                i.setTime(i.getTime() + h);
                var e = "; expires=" + i.toGMTString();
                document.cookie = k + "=" + escape(l) + e + "; path=/"
            }
        };
        try {
            if (document.referrer.indexOf(d) <= 0 || document.referrer.indexOf(d) > 10) {
                g().call(window, "regCompanyName", document.referrer.substring(0, 40) + "||" + window.location.href, 30)
            }
        } catch (f) {
 
        }
    });
    var b = function() {
        try {
            if (getCookie) {
                return getCookie
            }
        } catch (f) {}
        return function(e) {
            if (document.cookie.length > 0) {
                c_start = document.cookie.indexOf(e + "=");
                if (c_start != -1) {
                    c_start = c_start + e.length + 1;
                    c_end = document.cookie.indexOf(";", c_start);
                    if (c_end == -1) {
                        c_end = document.cookie.length
                    }
                    return unescape(document.cookie.substring(c_start, c_end))
                }
            }
            return null
        }
    };
})(jQuery);
 
//媒体
var media = "";
//媒体细分
var mediaSubdivide = "";
//注册渠道。(直接赋值)
var registerChannel = "";
//终端,根据用户使用设备判断
var terminal = "";
//数据来源,根据cookie确定
var dataSource = "";
//当前链接
var localUrl = window.location.href;
 
var userChannel = {
    //媒体
    Media: function(channelInfo){
        channelInfo=channelInfo.toLowerCase();
        if(channelInfo.indexOf("||") == 0 && (channelInfo.indexOf(args.mySite) >= 0)){
            //媒体  无法判断(如直接搜索) 
            media = "网址打开或站内跳转";  //媒体
            mediaSubdivide =  "";       //媒体细分
 
            // 无法获取referrer的来源的情况有:
            //1、个别平台外链使用noreferrer;
            //2、https跳转http;
            //3、网页重定向...
            //可在外链中植入可判定的参数如www.xxx.com&tag=zhihu
            if(channelInfo.indexOf("zhihu")>=0){
                media = "知乎";
                mediaSubdivide = "";
            }
        }else if(channelInfo.indexOf("baidu.com") != -1){
            media = "百度";                       //媒体
            if(channelInfo.indexOf('utm_medium=cpc') != -1){
                mediaSubdivide = "sem";         //媒体细分
            }else if(channelInfo.indexOf('utm_medium=cpc') == -1){
                mediaSubdivide = "seo";         //媒体细分
            }else{
                mediaSubdivide = "其它";      //媒体细分
            }
        }else if(channelInfo.indexOf('haosou.com') != -1 || channelInfo.indexOf('so.com') != -1){
            media = "好搜";                       //媒体
            mediaSubdivide = "无法判断";        //媒体细分
        }else if(channelInfo.indexOf('sogou.com') != -1){
            media = "搜狗";                       //媒体
            mediaSubdivide = "无法判断";        //媒体细分
        }else if(channelInfo.indexOf('sm.cn') != -1){
            media = "神马";                       //媒体
            mediaSubdivide = "无法判断";        //媒体细分
        }else if(channelInfo.indexOf('bing.com') != -1){
            media = "必应";                       //媒体
            mediaSubdivide = "无法判断";        //媒体细分
        }else if(channelInfo.indexOf('google.com') != -1){
            media = "google";                       //媒体
            mediaSubdivide = "无法判断";        //媒体细分
        }else if(channelInfo.indexOf('douban.com') != -1){
            media = "豆瓣";                       //媒体
            mediaSubdivide = "无法判断";        //媒体细分
        }else if(channelInfo.indexOf("zhihu.com") != -1){
            media = "知乎";
            mediaSubdivide = "无法判断";        
        }   
        else if(channelInfo.indexOf("toutiao") != -1){
            media = "今日头条";
            mediaSubdivide = "无法判断";        
        }
        else{
            media = "其它";                       //媒体
            mediaSubdivide = "无法判断";        //媒体细分
        }
    
        var mediaInfo=new Array(media,mediaSubdivide);
        return mediaInfo;
    },
    //终端
    Terminal: function(){
        if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))){
            terminal = "移动端";
            return terminal;
        }else{
            terminal = "PC端";
            return terminal;
        }
    },
    
    //注册渠道。通过判断当前页面url获取
    RegisterChannel: function(){
        if(localUrl.indexOf(args.mySite)!= -1 ){
            registerChannel = args.mySite+"网站注册";
            return registerChannel;
        }else if(localUrl.indexOf(args.subSite)!= -1){
            registerChannel = args.subSite+"网站注册";
            return registerChannel;
        }else{
            registerChannel = "未知";
            return registerChannel;
        }
    }
};
 
//通用设置cookie方法
function setCookie(name, value, days) {
    var cookieTime = days * 24 * 60 * 60 * 1000;
    var d = new Date();
    d.setTime(d.getTime() + cookieTime);
    var cookieExpires = "; expires=" + d.toGMTString();
    document.cookie = name + "=" + escape(value) + cookieExpires + "; path=/";
}
//通用读取cookie方法
function getCookie(name) {
    var strCookie = document.cookie;
    var arrCookie = strCookie.split("; ");
    for (var i = 0; i < arrCookie.length; i++) {
        var arr = arrCookie[i].split("=");
        if (arr[0] == name)
            return unescape(arr[1]);
    }
    return "";
}
 
//排除站内跳转的情况,以免window.name被错误覆盖
if(document.referrer.indexOf(args.mySite)<=0){
    window.name=document.referrer.substring(0,40)+"||"+window.location.href;
}
 
//使用案例
dataSource = getCookie('regCompanyName');
if(!dataSource || ""== dataSource || typeof(dataSource)== "undefined") {
    //当cookie无法使用时,优先使用window.name
    dataSource = (window.name) ? window.name : "";
}
 
var judgeMedia = userChannel.Media(dataSource);
var judgeTerminal = userChannel.Terminal();
var judgeRegisterChannel = userChannel.RegisterChannel();
 
console.log(judgeMedia+' ',judgeTerminal+' ',judgeRegisterChannel+' ');


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • js操作radio单选框改变事件 点击radio执行相应操作

    js操作radio单选框改变事件 点击radio执行相应操作

    浏览次数:15208

  • 关于layui富文本编辑器同步编辑器内容到textarea layedit.sync(index)

    关于layui富文本编辑器同步编辑器内容到textarea layedit.sync(index)

    浏览次数:12810

  • JavaScript中对url进行编码:urlencode编码

    JavaScript中对url进行编码:urlencode编码

    浏览次数:11418

  • js清除两个数组相同数据(js两个数组对比 去除相同项得到新数组)

    js清除两个数组相同数据(js两个数组对比 去除相同项得到新数组)

    浏览次数:6887

网友点评
评论区域