js获取浏览器关键字!

最近要优化下着陆页,获取用户搜索的关键字!

首先第一步!

1、获取连接!

//var refer = document.referrer;//获取连接
var refer = "https://wap.sogou.com/web/searchList.jsp?uID=DErXESBah2gq1Gya&v=5&from=index&pid=sogou-waps-7880d7226e872b77&w=1274&t=1566610756546&s_t=1566610779936&s_from=index&pg=webSearchList&inter_index=&keyword=%E7%BE%8E%E5%AE%B9&suguuid=b8896b29-1621-4e4e-843b-cc68df5e921d&sugsuv=AAHeAuV3KQAAAAqHEEtH4gAAZAM&sugtime=1566610779936&mcv=22&pcl=177,165&sed=0&ml=14&sct=32";//搜狗的来源连接!
var refers = "https://m.sm.cn/s?q=%E7%BE%8E%E5%AE%B9&from=smor&safe=1&by=submit&snum=6";//神马的来源连接!

为了测试方便,我随便搜索了2个美容的连接进行测试!

2、我们设置几个参数

var grep = null;//正则用来获取连接内的关键字信息
var str = null;//
var keyword = null;//关键字

3、判断连接并获取关键字

1、判断搜索引擎

我们需要先用split 函数来判断是哪个引擎进来的! 

var sosuo = refer.split(".")[1];

这个函数的作用是根据指定字符来分割成数组! 浏览器域名都是 m.baidu.com或者m.xhcss.com

那么我们分割后直接可以获取第一个数组即可获得baidu或者xhcss这个值了!

2、根据搜索引擎来判断关键字,这里我们就用switch,具体可以自行百度这个方法!大概就是和if else差不多!

switch (sosuo) {
       case "sogou"://是否是搜狗引擎
            grep = /keyword\=.*\&/i;//搜狗引擎的关键字参数是keyword
            str = refer.match(grep)
            console.log(str);
            keyword = str.toString().split("&")[0].split("=")[1];
            console.log(decodeURIComponent(keyword));//
            ykey = decodeURIComponent(keyword);//函数编码的 URI 进行解码。
            addCookie('key', decodeURIComponent(keyword), 1);
            //alert(decodeURIComponent(keyword)); 
            break;
            }

我们来说下,下面这两个!

 grep = /keyword\=.*\&/i;//正则获取wd开始的全部字符
str = refer.match(grep)//获取正则表达式后的全部字符

image.png

如果你在里面写q就能获取到q开始的全部字符,这里你的具体参考浏览器的关键字的参数是什么!

 grep = /q\=.*\&/i;//正则获取q开始的全部字符

3、多个

 switch (sosuo) {
        case "baidu":
            grep = /wd\=.*\&/i;
            str = refer.match(grep)
            keyword = str.toString().split("=")[1].split("&")[0];
            //console.log(decodeURIComponent(keyword)); 
            ykey = decodeURIComponent(keyword);
            addCookie('key', decodeURIComponent(keyword), 1);
            //alert(decodeURIComponent(keyword)); 
            break;
        case "google":
            grep = /&q\=.*\&/i;
            str = refer.match(grep)
            keyword = str.toString().split("&")[1].split("=")[1];
            //console.log(decodeURIComponent(keyword)); 
            ykey = decodeURIComponent(keyword);
            addCookie('key', decodeURIComponent(keyword), 1);
            break;
        case "sm":
            grep = /q\=.*\&/i;
            str = refer.match(grep);
            console.log(str);
            keyword = str.toString().split("&")[0].split("=")[1];
            console.log(decodeURIComponent(keyword));
            ykey = decodeURIComponent(keyword);
            addCookie('key', decodeURIComponent(keyword), 1);
            break;
        case "sogou":
            grep = /keyword\=.*\&/i;
            str = refer.match(grep)
            console.log(str);
            keyword = str.toString().split("&")[0].split("=")[1];
            console.log(decodeURIComponent(keyword));
            ykey = decodeURIComponent(keyword);
            addCookie('key', decodeURIComponent(keyword), 1);
            //alert(decodeURIComponent(keyword)); 
            break;
        default:
            addCookie('key', '', 1);

    }

其实到这里就可以了! 不过这个方法是我在网上找到的!里面有点错误,我稍微研究修复了下!

他增加了一个cookie,没怎么去研究具体作用了! 可以删掉!

全部代码如下

<script type="text/javascript">
    //var refer = document.referrer;//
    var refer = "https://wap.sogou.com/web/searchList.jsp?uID=DErXESBah2gq1Gya&v=5&from=index&pid=sogou-waps-7880d7226e872b77&w=1274&t=1566610756546&s_t=1566610779936&s_from=index&pg=webSearchList&inter_index=&keyword=%E7%BE%8E%E5%AE%B9&suguuid=b8896b29-1621-4e4e-843b-cc68df5e921d&sugsuv=AAHeAuV3KQAAAAqHEEtH4gAAZAM&sugtime=1566610779936&mcv=22&pcl=177,165&sed=0&ml=14&sct=32";//搜狗的来源连接!
    var refers = "https://m.sm.cn/s?q=%E7%BE%8E%E5%AE%B9&from=smor&safe=1&by=submit&snum=6";//神马的来源连接!
    var sosuo = refer.split(".")[1];
    var grep = null;
    var str = null;
    var keyword = null;
    var skey = "xx";
    var ykey = "";
    switch (sosuo) {
        case "baidu":
            grep = /wd\=.*\&/i;
            str = refer.match(grep)
            keyword = str.toString().split("=")[1].split("&")[0];
            //console.log(decodeURIComponent(keyword)); 
            ykey = decodeURIComponent(keyword);
            addCookie('key', decodeURIComponent(keyword), 1);
            //alert(decodeURIComponent(keyword)); 
            break;
        case "google":
            grep = /&q\=.*\&/i;
            str = refer.match(grep)
            keyword = str.toString().split("&")[1].split("=")[1];
            //console.log(decodeURIComponent(keyword)); 
            ykey = decodeURIComponent(keyword);
            addCookie('key', decodeURIComponent(keyword), 1);
            break;
        case "sm":
            grep = /q\=.*\&/i;
            str = refer.match(grep);
            console.log(str);
            keyword = str.toString().split("&")[0].split("=")[1];
            console.log(decodeURIComponent(keyword));
            ykey = decodeURIComponent(keyword);
            addCookie('key', decodeURIComponent(keyword), 1);
            break;
        case "sogou":
            grep = /keyword\=.*\&/i;
            str = refer.match(grep)
            console.log(str);
            keyword = str.toString().split("&")[0].split("=")[1];
            console.log(decodeURIComponent(keyword));
            ykey = decodeURIComponent(keyword);
            addCookie('key', decodeURIComponent(keyword), 1);
            //alert(decodeURIComponent(keyword)); 
            break;
        default:
            addCookie('key', '', 1);

    }
    var ckey = (getCookie('key'))
    //alert(ckey); 
    if (ykey.indexOf(skey) > -1)
    {
      console.log("又cookic");
    } 
    else{

    }
    function deleteCookie(name) {
        var date = new Date();
        date.setTime(date.getTime() - 10000);
        document.cookie = name + "=v; expires=" + date.toGMTString();
    }

    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 arr[1];
        }
        return "";
    }

    function addCookie(name, value, expiresHours) {
        var cookieString = name + "=" + escape(value);
        //判断是否设置过期时间 
        if (expiresHours > 0) {
            var date = new Date();
            date.setTime(date.getTime + expiresHours * 3600 * 1000);
            cookieString = cookieString + "; expires=" + date.toGMTString();
        }
        document.cookie = cookieString;
    }
    document.write(ykey);
    if (ykey == "")
    {} else
    {
        document.write("");
    }
    </script>


相关内容

发表评论

验证码:
点击我更换图片

最新评论