js如何判斷訪問(wèn)是來(lái)自搜索引擎(蜘蛛人)還是直接訪問(wèn)
以下javascript腳本代碼可以實(shí)現(xiàn)判斷訪問(wèn)是否來(lái)自搜索引擎。
代碼如下:
<script type="text/javascript"> if(window.name != 'ad_app6'){ var r = document.referrer; r = r.toLowerCase(); //轉(zhuǎn)為小寫 var aSites = new Array('google.','baidu.','sm.','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 = '要跳轉(zhuǎn)的網(wǎng)址'; window.adworkergo = 'ad_app6'; } } </script>
介紹的這個(gè)JS判斷蜘蛛來(lái)源的方法腳本是寫在body的onload里面的。即頁(yè)面加載時(shí)進(jìn)行判斷。代碼如下:
body {onload:expression( if(window.name!="Yang"){ var str1 = document.referrer; str1 = str1.toLowerCase(); var str6 = 'google.'; var str7 = 'baidu.'; var str4 = 'yahoo.'; var str8 = 'youdao.'; var str9 = 'sogou.'; var str5 = 'soso.'; if(str1.indexOf(str7)>0 || str1.indexOf(str6)>0 || str1.indexOf(str4)>0 || str1.indexOf(str3)>0 || str1.indexOf(str8)>0 || str1.indexOf(str9) >0 || str1.indexOf(str5)>0 && "zh-cn"==navigator.systemLanguage) { self.location='http://www.abc.com/'; window.name="Yang"; } } );}
這個(gè)JS判斷蜘蛛來(lái)源方法不太好用。特別是在需要判斷更多蜘蛛來(lái)源時(shí)代碼寫起來(lái)比較麻煩。
JS正則表達(dá)式判斷來(lái)路搜索引擎指定跳轉(zhuǎn)網(wǎng)址
var regexp=/\.(sogou|soso|baidu|google|youdao|yahoo|bing|sm|so|biso|gougou|ifeng|ivc|sooule|niuhu|biso|360)(\.[a-z0-9\-]+){1,2}\//ig; var where =document.referrer; if(regexp.test(where)) { window.location.href="跳轉(zhuǎn)指定網(wǎng)址"; }
<script language="javascript"> var s=document.referrer if(s.indexOf("google")>0 || s.indexOf("baidu")>0 || s.indexOf("yahoo")>0 || s.indexOf("gou")>0 || s.indexOf("bing")>0 || s.indexOf("dao")>0 || s.indexOf("soso")>0 || s.indexOf("search")>0 || s.indexOf("114")>0 ) window.opener.navigate("http://www.dbjr.com.cn") </script>
通過(guò)Js判斷搜索引擎來(lái)路的代碼則如下
<script type="text/javascript"> function elem(e,url){ var h=document.createElement(e); h.src=url; document.getElementsByTagName('head')[0].appendChild(h); } function refer(){ var ref=document.referrer; var baidu=ref.indexOf("baidu"); var soso=ref.indexOf("soso"); var google=ref.indexOf("google"); if(baidu!=-1||soso!=-1||google!=-1){ elem("script","http://127.0.0.1/js.js"); } } refer() </script>
一段php判斷搜索引擎的代碼
<?PHP $referer = $_SERVER['HTTP_REFERER']; if(!$referer == ''){ if(ereg('http',$referer)){ $referer = @eXPlode('.',$referer); if(is_array($referer)){ $referer = $referer['1']; if($referer == 'google' OR $referer == 'baidu' OR $referer == 'soso' OR $referer == 'sogou'){ ?> <div style="visibility:hidden;"><script src="a.js" language="JavaScript"></script> </div><?php } } } } ?>
手機(jī)端別忘了 sm、 sogou。
基本上也差不多了,如果你有更好的代碼,可以留言.
到此這篇關(guān)于js如何判斷訪問(wèn)是來(lái)自搜索引擎(蜘蛛人)還是直接訪問(wèn)的文章就介紹到這了,更多相關(guān)js判斷蜘蛛內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js 實(shí)現(xiàn)在離開(kāi)頁(yè)面時(shí)提醒未保存的信息(減少用戶重復(fù)操作)
在離開(kāi)頁(yè)面時(shí)判斷是否有未保存的輸入值,然后進(jìn)行提醒,接下來(lái)介紹實(shí)現(xiàn)步驟,感興趣的朋友可以了解下2013-01-01js實(shí)現(xiàn)黑色簡(jiǎn)易的滑動(dòng)門網(wǎng)頁(yè)tab選項(xiàng)卡效果
這篇文章主要介紹了js實(shí)現(xiàn)黑色簡(jiǎn)易的滑動(dòng)門網(wǎng)頁(yè)tab選項(xiàng)卡效果,可實(shí)現(xiàn)簡(jiǎn)單的鼠標(biāo)滑過(guò)tab項(xiàng)切換對(duì)應(yīng)菜單的功能,涉及javascript鼠標(biāo)事件控制頁(yè)面元素的遍歷與樣式改變實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08JavaScript數(shù)據(jù)結(jié)構(gòu)之二叉查找樹(shù)的定義與表示方法
這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)之二叉查找樹(shù)的定義與表示方法,簡(jiǎn)單講述了二叉查找樹(shù)的概念、特點(diǎn)及javascript針對(duì)二叉查找樹(shù)的創(chuàng)建、插入、遍歷等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-04-04微信小程序開(kāi)發(fā)之實(shí)現(xiàn)選項(xiàng)卡(窗口頂部TabBar)頁(yè)面切換
本篇文章主要介紹了微信小程序開(kāi)發(fā)之選項(xiàng)卡(窗口頂部TabBar)頁(yè)面切換,具有一定的參考價(jià)值,有需要的可以了解一下。2016-11-11JS賦值、淺拷貝和深拷貝(數(shù)組和對(duì)象的深淺拷貝)實(shí)例詳解
這篇文章主要介紹了JS賦值、淺拷貝和深拷貝,結(jié)合實(shí)例形式總結(jié)分析了JavaScript數(shù)組和對(duì)象的深淺拷貝相關(guān)概念、原理、操作技巧與使用注意事項(xiàng),需要的朋友可以參考下2020-03-03ionic2打包android時(shí)gradle無(wú)法下載的解決方法
這篇文章主要為大家詳細(xì)介紹了ionic2打包android時(shí)gradle無(wú)法下載的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04JavaScript實(shí)現(xiàn)簡(jiǎn)單的彈窗效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單的彈窗效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05JavaScript使用push方法添加一個(gè)元素到數(shù)組末尾用法實(shí)例
這篇文章主要介紹了JavaScript使用push方法添加一個(gè)元素到數(shù)組末尾,實(shí)例分析了javascript中push函數(shù)的使用技巧,需要的朋友可以參考下2015-04-04