解決js下referer兼容各大瀏覽器的方法
HTTP Header referer這玩意主要是告訴人們我是從哪兒來的,就是告訴人家我是從哪個頁面過來的,可以用于統(tǒng)計(jì)訪問本網(wǎng)站的用戶來源,也可以用來防盜鏈。獲取這個東西最好的方式是js,如果在服務(wù)器端獲?。≒HP方法如:$_SERVER['HTTP_REFERER']) 不靠譜,人家可以偽造,用js獲取最好,人家很難偽造,
方法:利用js的 document.referer 方法可以準(zhǔn)確地判斷網(wǎng)頁的真實(shí)來路。 目前百度統(tǒng)計(jì),google ads統(tǒng)計(jì),CNZZ統(tǒng)計(jì),都是用的這個方法。防盜鏈也很簡單了,js里判斷來路url如果不是本站不顯示圖片。
眾所周知,我們web開發(fā)人員痛恨IE瀏覽器,因?yàn)镮E不支持標(biāo)準(zhǔn),標(biāo)準(zhǔn)外的默認(rèn)行為又和其他瀏覽器經(jīng)常不一致:
在IE中用javascript做跳轉(zhuǎn),比如用window.location.href = “”; google如果使用document.referrer無法取到瀏覽器請求的HTTP referrer,因?yàn)镮E清空了
而其他主流瀏覽器Firefox和Chrome都會保留referrer,沒辦法,這意味著IE又要享受“部長級”特殊待遇了:
以下代碼可以解決ie的這個問題:
//檢測如果是ie瀏覽器,則手動的給增加一個referer
這樣的原理就是給IE瀏覽器的頁面偷偷加了個鏈接,然后自動點(diǎn)這個鏈接,于是referrer就能保留了。
var url = 'http://www.dhdzp.com';
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;
}
相關(guān)文章
JS中script標(biāo)簽defer和async屬性的區(qū)別詳解
這篇文章主要介紹了JS中script標(biāo)簽defer和async屬性的區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下2016-08-08
electron的webview和內(nèi)嵌網(wǎng)頁通信的方法
在 Electron 的世界里,webview 標(biāo)簽相當(dāng)于一個小盒子,里面可以裝一個完整的網(wǎng)頁,就像一個迷你瀏覽器,這篇文章主要介紹了electron的webview和內(nèi)嵌網(wǎng)頁如何通信,需要的朋友可以參考下2024-04-04
利用XMLHTTP傳遞參數(shù)在另一頁面執(zhí)行并刷新本頁
利用XMLHTTP傳遞參數(shù)在另一頁面執(zhí)行并刷新本頁...2006-10-10
微信小程序movable view移動圖片和雙指縮放實(shí)例代碼
movable-area是微信小程序的新組件,可以用來移動視圖區(qū)域movable-view。這篇文章主要介紹了微信小程序movable view移動圖片和雙指縮放實(shí)例代碼,需要的朋友可以參考下2017-08-08
layer.open回調(diào)獲取彈出層參數(shù)的實(shí)現(xiàn)方法
今天小編就為大家分享一篇layer.open回調(diào)獲取彈出層參數(shù)的實(shí)現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
JavaScript開發(fā)時的五個注意事項(xiàng)
JavaScript開發(fā)時的五個注意事項(xiàng)講述了表單事件、鏈接、循環(huán)優(yōu)化、匿名函數(shù)、字符串連接等優(yōu)化技巧,需要的朋友可以參考一下2007-12-12

