获取来源网站php,js实现获取网站搜索来源代码
本文主要和大家分享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实现获取网站搜索来源代码相关推荐
- js获取html样式属性,js怎么获取指定css属性的值?
js怎么获取指定css属性的值?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. js怎么获取指定css属性的值? 1.通过dom.style.属性 来获取 ...
- vue 获取id元素,vue.js怎么获取dom元素?
vue.js怎么获取dom元素?下面本篇文章给大家介绍一下vue.js获取dom元素的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 使用Vue.js获取dom元素 标签中添加 ...
- js php 获取时间倒计时_,JS实现获取时间和设置倒计时代码分享
本文主要和大家分享JS实现获取时间和设置倒计时代码,希望能帮助到大家. 只做笔记记录一下,主要用到Date 和 setInterval 第一个倒计时的设置: var timeBox = documen ...
- html中显示js获取的图片地址,js如何获取UEditor富文本编辑器中的图片地址
写之前在网上找了很多方法,最简单的思路应该是1.获取UEditor中的内容:2.将获取到的字符串转换成jquery对象:3.选择器找到img元素,获取src值.var content= UE.getE ...
- 织梦+php获取数据,DedeCms 用JS+PHP获取是否有新短消息
dedecms在会员中心的顶部有一系列横向的导航链接,其中就包括一个短信息的链接,如果有了未读短消息,就会用红色字体显示数量. 看起来效果不错,但是这页面是动态生成的,一旦想要把效果应用在静态页面上( ...
- js获取php单选按钮值,js如何获取radio单选框选中的值
js中一般使用遍历的方法获取radio被选中的值,遍历判断每个Radio是否被选中,如果是,再取其值. 1 2 3 function usubmit(action){ var radionum = d ...
- android获取QQ昵称,Auto.js Pro获取QQ附近的人资料页用户昵称
前言 写QQ附近的人引流脚本的时候,需要判断当前用户是否已经操作过.如果操作过,就跳过该用户. 在用户列表页取名字不太好取.于是就在用户资料页取用户昵称. 接下来查看用户昵称的节点信息,发现id和te ...
- php 获取屏幕的宽度,JS,Jquery获取各种屏幕的宽度和高度
Javascript: 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document ...
- 网站数据常见的获取途径有什么
通常数据的来源分为4部分:点击流数据.运营数据.调研数据和竞争对手数据.在获取上述几类数据的同时,还可以从其他方面获取一些更为丰富的数据.下面是针对网站分析数据获取途径的整理,从网站内部数据.外部数据 ...
最新文章
- .NET 获取客户端的操作系统版本、浏览器版本和IP地址
- leetcode算法题--使序列递增的最小交换次数★
- discuz 生成静态html,Discuz论坛静态化设置方法
- java多对多关联数据操作,hibernate实施多对多关联查询时,关联表数据被删除
- shell训练营Day31
- notepad正则删除关键词所在行
- try catch对异常进行输出到日志、_java安全编码指南之:异常处理
- 备份文件命令SqlServer一键复制数据库脚本
- 10.31T2 点双联通分量+预处理前缀+二分答案
- 二分查找非递归方式实现
- Qt使用udp的Broadcast实现广播图片
- Python实例讲解 -- 发送邮件带附件 (亲测)
- Angular 在项目中使用fullcalendar 日程表
- 关于html中对换行的处理
- NLP(自然语言处理技术)
- 扇贝 Service Mesh 发展历程
- 互联网的发展对国民经济的促进发展
- Android studio连接夜神模拟器(一)
- flash mx拖拽实例_在Flash MX中制作射击游戏
- 庖丁解牛Transformer原理
热门文章
- windows下mysql5.6安装
- mysql导入报编码错误问题解决
- jquery ajax json传递数组,jQuery ajax 传递JSON数组到Spring Controller
- mysql在test库中创建表stu_1.在mysql的test数据库中新建表,表名为student,表结构如下:...
- Unity Cinemachine智能相机教程(五):VirtualCamera的Extension扩展
- [Unity2018.3新功能]Prefab嵌套和变体
- OpenShift 4 - 用 Quay Operator 安装 Quay 环境(4.10 修正)
- OpenShift 4 - 为客户端配置使用基于CA证书的kubeconfig实现无密码登录
- (二)预处理时间序列数据用于AI预测和异常检测
- 用什么软件可以检测苹果耳机芯片_精确空间感知的超宽频U1芯片,或许才是新iPhone的秘密武器...