渠道--截取url拼接
先順一下項目開發(fā)前的準備
如下網址:
sem.xxxxxx.com
1、用戶輸入之后,會根據(jù)當前設備判斷打開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...
}
開發(fā)結束之后測試渠道是否正常碳竟,不可傳入undefined。