V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
aijialefu
V2EX  ›  程序员

1024 还要加班的苦逼小白请各位大佬帮忙看一段 js 代码

  •  
  •   aijialefu · 2019-10-24 11:38:22 +08:00 · 1365 次点击
    这是一个创建于 1881 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求: 判断是否是移动端,如果是 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 条附言  ·  2019-10-24 12:49:50 +08:00
    麻烦看下,这段程序可行,打扰大家过节了😂
    3 条回复    2019-10-24 12:50:58 +08:00
    aijialefu
        1
    aijialefu  
    OP
       2019-10-24 11:44:32 +08:00
    自顶菊花
    TMaize
        2
    TMaize  
       2019-10-24 11:59:48 +08:00
    F12 toggle device 能切换设备模拟 UA

    把 referrer 的获取抽取成公共函数,测试环境下返回想要的网址也能模拟
    aijialefu
        3
    aijialefu  
    OP
       2019-10-24 12:50:58 +08:00 via Android
    @TMaize 这段代码可能跑起来?我对 js 不懂,不好意思
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5479 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 06:28 · PVG 14:28 · LAX 22:28 · JFK 01:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.