解決js下referer兼容各大瀏覽器的方法
HTTP Header referer這玩意主要是告訴人們我是從哪兒來(lái)的,就是告訴人家我是從哪個(gè)頁(yè)面過(guò)來(lái)的,可以用于統(tǒng)計(jì)訪問(wèn)本網(wǎng)站的用戶來(lái)源,也可以用來(lái)防盜鏈。獲取這個(gè)東西最好的方式是js,如果在服務(wù)器端獲取(PHP方法如:$_SERVER['HTTP_REFERER']) 不靠譜,人家可以偽造,用js獲取最好,人家很難偽造,
方法:利用js的 document.referer 方法可以準(zhǔn)確地判斷網(wǎng)頁(yè)的真實(shí)來(lái)路。 目前百度統(tǒng)計(jì),google ads統(tǒng)計(jì),CNZZ統(tǒng)計(jì),都是用的這個(gè)方法。防盜鏈也很簡(jiǎn)單了,js里判斷來(lái)路url如果不是本站不顯示圖片。
眾所周知,我們web開(kāi)發(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無(wú)法取到瀏覽器請(qǐng)求的HTTP referrer,因?yàn)镮E清空了
而其他主流瀏覽器Firefox和Chrome都會(huì)保留referrer,沒(méi)辦法,這意味著IE又要享受“部長(zhǎng)級(jí)”特殊待遇了:
以下代碼可以解決ie的這個(gè)問(wèn)題:
//檢測(cè)如果是ie瀏覽器,則手動(dòng)的給增加一個(gè)referer
這樣的原理就是給IE瀏覽器的頁(yè)面偷偷加了個(gè)鏈接,然后自動(dòng)點(diǎn)這個(gè)鏈接,于是referrer就能保留了。
var url = 'http://www.dbjr.com.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;
}
- js操作iframe兼容各種主流瀏覽器示例代碼
- JS兼容瀏覽器的導(dǎo)出Excel(CSV)文件的方法
- css與javascript跨瀏覽器兼容性總結(jié)
- 兼容主流瀏覽器的JS復(fù)制內(nèi)容到剪貼板
- JS中完美兼容各大瀏覽器的scrolltop方法
- HTML+CSS+JS實(shí)現(xiàn)完美兼容各大瀏覽器的TABLE固定列
- js兼容pc端瀏覽器并有多種彈出小提示的手機(jī)端浮層控件實(shí)例
- 測(cè)試IE瀏覽器對(duì)JavaScript的AngularJS的兼容性
- 推薦閱讀的js快速判斷IE瀏覽器(兼容IE10與IE11)
- 瀏覽器兼容的JS寫(xiě)法總結(jié)
相關(guān)文章
layui table復(fù)選框禁止某幾條勾選的實(shí)例
今天小編就為大家分享一篇layui table復(fù)選框禁止某幾條勾選的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09javascript實(shí)現(xiàn)的字符串轉(zhuǎn)換成數(shù)組操作示例
這篇文章主要介紹了javascript實(shí)現(xiàn)的字符串轉(zhuǎn)換成數(shù)組操作,涉及javascript字符串與數(shù)組相互轉(zhuǎn)換、以及數(shù)組反轉(zhuǎn)相關(guān)操作技巧,需要的朋友可以參考下2019-06-06JavaScript中的 attribute 和 jQuery中的 attr 方法淺析
這篇文章主要介紹了JavaScript中的 attribute 和 jQuery中的 attr 方法淺析,需要的朋友可以參考下2017-01-01javascript跨域方法、原理以及出現(xiàn)問(wèn)題解決方法(詳解)
javascript出于安全方面的考慮,不允許跨域調(diào)用其他頁(yè)面的對(duì)象。但是在安全限制的同時(shí)也給注入iframe或是ajax應(yīng)用上帶來(lái)了不少麻煩??缬蚝?jiǎn)單的理解就是因?yàn)閖avascript同源策略的限制,a.com域名下的js無(wú)法操作b.com 或者是c.a.com域名下的對(duì)象2015-08-08解決layui checkbox 提交多個(gè)值的問(wèn)題
今天小編就為大家分享一篇解決layui checkbox 提交多個(gè)值的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09JS實(shí)現(xiàn)動(dòng)態(tài)生成表格并提交表格數(shù)據(jù)向后端
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)動(dòng)態(tài)生成表格并提交表格數(shù)據(jù)向后端的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01