解決js下referer兼容各大瀏覽器的方法
HTTP Header referer這玩意主要是告訴人們我是從哪兒來的,就是告訴人家我是從哪個頁面過來的,可以用于統(tǒng)計訪問本網站的用戶來源,也可以用來防盜鏈。獲取這個東西最好的方式是js,如果在服務器端獲?。≒HP方法如:$_SERVER['HTTP_REFERER']) 不靠譜,人家可以偽造,用js獲取最好,人家很難偽造,
方法:利用js的 document.referer 方法可以準確地判斷網頁的真實來路。 目前百度統(tǒng)計,google ads統(tǒng)計,CNZZ統(tǒng)計,都是用的這個方法。防盜鏈也很簡單了,js里判斷來路url如果不是本站不顯示圖片。
眾所周知,我們web開發(fā)人員痛恨IE瀏覽器,因為IE不支持標準,標準外的默認行為又和其他瀏覽器經常不一致:
在IE中用javascript做跳轉,比如用window.location.href = “”; google如果使用document.referrer無法取到瀏覽器請求的HTTP referrer,因為IE清空了
而其他主流瀏覽器Firefox和Chrome都會保留referrer,沒辦法,這意味著IE又要享受“部長級”特殊待遇了:
以下代碼可以解決ie的這個問題:
//檢測如果是ie瀏覽器,則手動的給增加一個referer
這樣的原理就是給IE瀏覽器的頁面偷偷加了個鏈接,然后自動點這個鏈接,于是referrer就能保留了。
var url = 'http://chabaoo.cn';
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent) || /MSIE(\d+\.\d+);/.test(navigator.userAgent))
{
var referLink = document.createElement('a');
referLink.href = url;
document.body.appendChild(referLink);
referLink.click();
}
else
{
location.href = url;
}
相關文章
javascript實現(xiàn)的字符串轉換成數(shù)組操作示例
這篇文章主要介紹了javascript實現(xiàn)的字符串轉換成數(shù)組操作,涉及javascript字符串與數(shù)組相互轉換、以及數(shù)組反轉相關操作技巧,需要的朋友可以參考下2019-06-06JavaScript中的 attribute 和 jQuery中的 attr 方法淺析
這篇文章主要介紹了JavaScript中的 attribute 和 jQuery中的 attr 方法淺析,需要的朋友可以參考下2017-01-01javascript跨域方法、原理以及出現(xiàn)問題解決方法(詳解)
javascript出于安全方面的考慮,不允許跨域調用其他頁面的對象。但是在安全限制的同時也給注入iframe或是ajax應用上帶來了不少麻煩。跨域簡單的理解就是因為javascript同源策略的限制,a.com域名下的js無法操作b.com 或者是c.a.com域名下的對象2015-08-08JS實現(xiàn)動態(tài)生成表格并提交表格數(shù)據(jù)向后端
這篇文章主要為大家詳細介紹了JS實現(xiàn)動態(tài)生成表格并提交表格數(shù)據(jù)向后端的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-01-01