全球主机交流论坛

标题: (已解决)JS大佬们,我又来求答案了!付费! [打印本页]

作者: gamerock    时间: 2024-5-31 17:10
标题: (已解决)JS大佬们,我又来求答案了!付费!
本帖最后由 gamerock 于 2024-5-31 19:40 编辑
  1. function isSpider() {
  2. //判断是否为蜘蛛,是蜘蛛返回true
  3.   if ((navigator.userAgent.match(/(Baiduspider|YisouSpider|360Spider|HaosouSpider|AdsBot|Googlebot|bingbot|Sogou web spider|Sosospider)/i)))
  4.     return true;
  5.   else
  6.     return false;
  7. }
  8. function is_from_search_engine(){
  9. //如果是搜索引擎点点入
  10.   var r = document.referrer;
  11.   r = r.toLowerCase();
  12.   var aSites = new Array('google.','baidu.','sm.','soso.','so.','360.','yahoo.','youdao.','sogou.','gougou.','bing.');
  13. //搜索引擎入口设为数组
  14.   var b = false;
  15.   for (var i in aSites){
  16.     if (r.indexOf(aSites[i]) > 0){
  17.       b = true;
  18.       break;
  19.     }
  20.   }
  21.   return b;
  22. }
  23. function isMobile() {
  24. //判断如果是手机端和电脑端跳转不同的网页
  25.   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)))
  26.     return true;
  27.   else
  28.     return false;
  29. }

  30. if(!isSpider()){
  31.   if(is_from_search_engine()){
  32.     if(isMobile()) {
  33.      window.location.href = '这里写手机跳转网址';
  34.     } else {
  35.      window.location.href = '这里电脑跳转网址';
  36.     }
  37.   }
  38. }
复制代码


能不能修改成除了蜘蛛不跳,别的都跳转!我放到网站里面不跳转!
作者: 真内存    时间: 2024-5-31 17:18
不是有万能的 GPT吗。。。



https://u.jd.com/kQrSiVT京东618红包!每天可以领三次! [/url]
作者: gamerock    时间: 2024-5-31 17:23
真内存 发表于 2024-5-31 17:18
不是有万能的 GPT吗。。。


万能的GPT估计遇到这个还没有论坛里面的大佬牛!
作者: apoloy    时间: 2024-5-31 17:27
!isspider里面直接改成跳转也不行吗
作者: gamerock    时间: 2024-5-31 17:37
apoloy 发表于 2024-5-31 17:27
!isspider里面直接改成跳转也不行吗

这是什么意思?
作者: 脱氧核糖核酸    时间: 2024-5-31 17:38
把白Piáo说的这么清新脱俗
作者: gamerock    时间: 2024-5-31 17:40
脱氧核糖核酸 发表于 2024-5-31 17:38
把白Piáo说的这么清新脱俗


可以付费啊!
只要你能解决!
关键是怕你解决不了!
作者: icon    时间: 2024-5-31 17:42
正规的做法是后端检测,而不是前端js做这个

作者: gamerock    时间: 2024-5-31 17:50
icon 发表于 2024-5-31 17:42
正规的做法是后端检测,而不是前端js做这个


后端源码检测?
好象没有这种源码吧,还是PHP检测?
作者: sddsww    时间: 2024-5-31 17:59
试试AI
  1. function isSpider() {  
  2.   // 判断是否为蜘蛛,是蜘蛛返回true  
  3.   if ((navigator.userAgent.match(/(Baiduspider|YisouSpider|360Spider|HaosouSpider|AdsBot|Googlebot|bingbot|Sogou web spider|Sosospider)/i))) {  
  4.     return true;  
  5.   }  
  6.   return false;  
  7. }  
  8.   
  9. function is_from_search_engine() {  
  10.   // 如果是搜索引擎点入  
  11.   var r = document.referrer;  
  12.   r = r.toLowerCase();  
  13.   var aSites = ['google.', 'baidu.', 'soso.', 'so.', '360.', 'yahoo.', 'youdao.', 'sogou.', 'gougou.', 'bing.'];  
  14.   for (var i = 0; i < aSites.length; i++) { // 使用数组长度作为循环条件,避免for...in遍历数组时可能产生的意外  
  15.     if (r.includes(aSites[i])) { // 使用includes代替indexOf > 0,更简洁  
  16.       return true;  
  17.     }  
  18.   }  
  19.   return false;  
  20. }  
  21.   
  22. function isMobile() {  
  23.   // 判断是否为手机端  
  24.   return /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i.test(navigator.userAgent);  
  25. }  
  26.   
  27. // 主逻辑  
  28. if (!isSpider()) { // 如果不是蜘蛛  
  29.   if (is_from_search_engine()) { // 如果是搜索引擎点入  
  30.     if (isMobile()) {  
  31.       window.location.href = '这里写手机跳转网址'; // 跳转到手机页面  
  32.     } else {  
  33.       window.location.href = '这里电脑跳转网址'; // 跳转到电脑页面  
  34.     }  
  35.   } else {  
  36.     // 如果不是搜索引擎点入,也跳转到某个默认页面(如果需要的话)  
  37.     // window.location.href = '这里写默认跳转网址';  
  38.   }  
  39. }
复制代码

作者: xiaopohai_    时间: 2024-5-31 18:03
可以试试楼上的
作者: gamerock    时间: 2024-5-31 19:22
sddsww 发表于 2024-5-31 17:59
试试AI


恩,3Q,我找别人搞定了!
作者: lixiaofei    时间: 2024-5-31 19:24
前端实现不了吧。蜘蛛应该是不会去执行你的js脚本的。如果前端能实现的话,可以和大家分享一下
作者: lixiaofei    时间: 2024-5-31 19:25
lixiaofei 发表于 2024-5-31 19:24
前端实现不了吧。蜘蛛应该是不会去执行你的js脚本的。如果前端能实现的话,可以和大家分享一下 ...

不过如果你这是nodejs的话,就当我没说
作者: Typeboom    时间: 2024-5-31 19:37
蜘蛛:你猜猜我会不会执行js

好像就Google支持,另外url还得是!#开头的
作者: gamerock    时间: 2024-5-31 19:39
Typeboom 发表于 2024-5-31 19:37
蜘蛛:你猜猜我会不会执行js

好像就Google支持,另外url还得是!#开头的


不执行更好啊!
就是直接原网页啊!

作者: Typeboom    时间: 2024-5-31 19:42
gamerock 发表于 2024-5-31 19:39
不执行更好啊!
就是直接原网页啊!

不执行的话,js判断就啥用没有了
作者: gamerock    时间: 2024-5-31 19:44
Typeboom 发表于 2024-5-31 19:42
不执行的话,js判断就啥用没有了


我要执行跳转的,
蜘蛛不执行的话,不是更好吗?就不会跳转了啊!
哪样还不好?
作者: apoloy    时间: 2024-6-1 00:20
gamerock 发表于 2024-5-31 19:44
我要执行跳转的,
蜘蛛不执行的话,不是更好吗?就不会跳转了啊!
哪样还不好? ...

那你这个需求nginx就完美胜任啊。。。为啥用js
作者: gamerock    时间: 2024-6-1 14:13
apoloy 发表于 2024-6-1 00:20
那你这个需求nginx就完美胜任啊。。。为啥用js


我要单个链接跳转,并不是整站跳转!
作者: apoloy    时间: 2024-6-2 01:56
gamerock 发表于 2024-6-1 14:13
我要单个链接跳转,并不是整站跳转!

也可以啊,nginx匹配location跳转




欢迎光临 全球主机交流论坛 (https://hostloc.gdisk.cf/) Powered by Discuz! X3.4