本文主要和大家分享js实现获取网站搜索来源代码,把以下代码引入所有页面,即可实现收集系统来源的功能,在任意页面中都可以使用全局的统一的来源信息,希望能帮助到大家。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 mediaSubpide = "";

//注册渠道。(直接赋值)

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 = "网址打开或站内跳转"; //媒体

mediaSubpide = ""; //媒体细分

// 无法获取referrer的来源的情况有:

//1、个别平台外链使用noreferrer;

//2、https跳转http;

//3、网页重定向...

//可在外链中植入可判定的参数如www.xxx.com&tag=zhihu

if(channelInfo.indexOf("zhihu")>=0){

media = "知乎";

mediaSubpide = "";

}

}else if(channelInfo.indexOf("baidu.com") != -1){

media = "百度"; //媒体

if(channelInfo.indexOf('utm_medium=cpc') != -1){

mediaSubpide = "sem"; //媒体细分

}else if(channelInfo.indexOf('utm_medium=cpc') == -1){

mediaSubpide = "seo"; //媒体细分

}else{

mediaSubpide = "其它"; //媒体细分

}

}else if(channelInfo.indexOf('haosou.com') != -1 || channelInfo.indexOf('so.com') != -1){

media = "好搜"; //媒体

mediaSubpide = "无法判断"; //媒体细分

}else if(channelInfo.indexOf('sogou.com') != -1){

media = "搜狗"; //媒体

mediaSubpide = "无法判断"; //媒体细分

}else if(channelInfo.indexOf('sm.cn') != -1){

media = "神马"; //媒体

mediaSubpide = "无法判断"; //媒体细分

}else if(channelInfo.indexOf('bing.com') != -1){

media = "必应"; //媒体

mediaSubpide = "无法判断"; //媒体细分

}else if(channelInfo.indexOf('google.com') != -1){

media = "google"; //媒体

mediaSubpide = "无法判断"; //媒体细分

}else if(channelInfo.indexOf('douban.com') != -1){

media = "豆瓣"; //媒体

mediaSubpide = "无法判断"; //媒体细分

}else if(channelInfo.indexOf("zhihu.com") != -1){

media = "知乎";

mediaSubpide = "无法判断";

}

else if(channelInfo.indexOf("toutiao") != -1){

media = "今日头条";

mediaSubpide = "无法判断";

}

else{

media = "其它"; //媒体

mediaSubpide = "无法判断"; //媒体细分

}

var mediaInfo=new Array(media,mediaSubpide);

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+' ');

获取来源网站php,js实现获取网站搜索来源代码相关推荐

  1. js获取html样式属性,js怎么获取指定css属性的值?

    js怎么获取指定css属性的值?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. js怎么获取指定css属性的值? 1.通过dom.style.属性 来获取 ...

  2. vue 获取id元素,vue.js怎么获取dom元素?

    vue.js怎么获取dom元素?下面本篇文章给大家介绍一下vue.js获取dom元素的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 使用Vue.js获取dom元素 标签中添加 ...

  3. js php 获取时间倒计时_,JS实现获取时间和设置倒计时代码分享

    本文主要和大家分享JS实现获取时间和设置倒计时代码,希望能帮助到大家. 只做笔记记录一下,主要用到Date 和 setInterval 第一个倒计时的设置: var timeBox = documen ...

  4. html中显示js获取的图片地址,js如何获取UEditor富文本编辑器中的图片地址

    写之前在网上找了很多方法,最简单的思路应该是1.获取UEditor中的内容:2.将获取到的字符串转换成jquery对象:3.选择器找到img元素,获取src值.var content= UE.getE ...

  5. 织梦+php获取数据,DedeCms 用JS+PHP获取是否有新短消息

    dedecms在会员中心的顶部有一系列横向的导航链接,其中就包括一个短信息的链接,如果有了未读短消息,就会用红色字体显示数量. 看起来效果不错,但是这页面是动态生成的,一旦想要把效果应用在静态页面上( ...

  6. js获取php单选按钮值,js如何获取radio单选框选中的值

    js中一般使用遍历的方法获取radio被选中的值,遍历判断每个Radio是否被选中,如果是,再取其值. 1 2 3 function usubmit(action){ var radionum = d ...

  7. android获取QQ昵称,Auto.js Pro获取QQ附近的人资料页用户昵称

    前言 写QQ附近的人引流脚本的时候,需要判断当前用户是否已经操作过.如果操作过,就跳过该用户. 在用户列表页取名字不太好取.于是就在用户资料页取用户昵称. 接下来查看用户昵称的节点信息,发现id和te ...

  8. php 获取屏幕的宽度,JS,Jquery获取各种屏幕的宽度和高度

    Javascript: 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document ...

  9. 网站数据常见的获取途径有什么

    通常数据的来源分为4部分:点击流数据.运营数据.调研数据和竞争对手数据.在获取上述几类数据的同时,还可以从其他方面获取一些更为丰富的数据.下面是针对网站分析数据获取途径的整理,从网站内部数据.外部数据 ...

最新文章

  1. 成功解决TypeError: map() got an unexpected keyword argument 'num_threads'
  2. Vue的表单组件之下拉框
  3. 有关gcc,make,gdb的知识
  4. 详解WordPress中简码格式标签编写的基本方法
  5. 8086汇编4位bcd码_51单片机用汇编语言实现BCD码转换
  6. 查看mysql8的log位置
  7. ASP.NET中共有哪几种类型的控件?其中,HTML控件、HTML服务器控件和WEB服务器控件之间有什么区别
  8. spring mvc java 把多文件打包成zip,并下载
  9. 测者的测试技术手册:Junit单元测试遇见的一个枚举类型的坑(枚举类型详解)...
  10. 报警触发音频和音频素材网址
  11. 串口通信基本接线方法
  12. Android Studio应用Freeline光速编译APK
  13. 氨基酸三字母序列转单字母序列
  14. 初窥 RAP:如何使用 RAP 进行接口文档管理
  15. 【区块链实战】什么是区块链,为什么会产生区块链技术
  16. 解决Openwrt安装插件提示一下错误的办法
  17. 【高等数学】02 函数的特性,有界性,无界性,单调性,奇偶性,周期性,反函数,复合函数
  18. 中国在足球上不敌德国 但在这件事上却完全可以嘚瑟
  19. 【前端】一些简单的测试题
  20. 知识付费——移动端音视频加密、防盗播实现方案

热门文章

  1. python 列表为空_如果列表为空,则Python返回False
  2. Java调用python的程序
  3. python的基础 杂项(十四)
  4. 反转 鼠标_新版 Win10 中改变鼠标颜色
  5. Unity3d开发跳一跳AI(ML-agents)全纪录
  6. latex设置一级标题样式不居中_Word应用“样式”的设置
  7. spring security oauth2_SpringBoot2 整合OAuth2实现统一认证
  8. Vue中基于Vuex使用echarts组件动态数据绑定的方法
  9. hexo html代码高亮,使用 prismjs 自定义 Hexo 代码高亮
  10. 4核处理器_买电脑选4核、6核还是8核,从业是十年的专家终于讲清楚了差异