亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

javascript操作referer詳細解析

2019-11-20 20:58:06
字體:
來源:轉載
供稿:網友

Referrer的重要性
HTTP請求中有一個referer的報文頭,用來指明當前流量的來源參考頁。例如在www.sina.com.cn/sports/上點擊一個鏈接到達cctv.com首頁,那么就referrer就是www.sina.com.cn/sports/了。在Javascript中,我們可以通過document.referrer來獲取同樣的信息。通過這個信息,我們就可以知道訪客是從什么渠道來到當前頁面的。這對于Web Analytics來說,是非常重要的,這可以告訴我們不同渠道帶來的流量的分布情況,還有用戶搜索的關鍵詞等,都是通過分析這個referrer信息來獲取的。

但是,出于各種各樣的原因,有時候Javascript中讀到的referrer卻是空字符串。下面總結一下哪些情況下會丟失referrer。

修改Location對象進行頁面導航
Location對象是一個用于頁面導航的非常實用的對象。因為他允許你只變更Url的其中一部分。例如從cn域名切換到com域名,其他部分不變:

復制代碼 代碼如下:

window.location.hostname = "example.com";

但是,通過修改Location進行頁面導航的方法,會導致在IE下丟失Referrer。

IE5.5+ 下返回空字符串

Chrome3.0+,Firefox3.5,Opera9.6,Safari3.2.2均正常返回來源網頁

window.open方式打開新窗口
示例:

復制代碼 代碼如下:

<a href="#" onclick="window.open('http://www.google.com')">訪問Google</a>

點擊此鏈接會在新窗口打開Google網站,我們在地址欄中輸入以下js代碼就可以看到發送的referrer了。
復制代碼 代碼如下:

javascript:alert(document.referrer)

測試結果:

IE5.5+ 下返回空字符串

Chrome3.0+,Firefox3.5,Opera9.6,Safari3.2.2均正常返回來源網頁

如果是同個域名下通過此方式跳轉的,那么我們可以通過訪問windoww.opener對象去獲取丟失的referrer信息。代碼如下:

復制代碼 代碼如下:

<script type="text/javascript">
    var referrer = document.referrer;
    if (!referrer) {
        try {
            if (window.opener) {
                // IE下如果跨域則拋出權限異常
                // Safari和Chrome下window.opener.location沒有任何屬性
                referrer = window.opener.location.href;
            }
        } 
        catch (e) {}
    }
</script>

跨域的話則沒轍了~

鼠標拖拽打開新窗口
鼠標拖拽是現在非常流行的用戶習慣,很多瀏覽器都內置或者可以通過插件的方式來支持鼠標拖拽式瀏覽。但是通過這種方式打開的頁面,基本全都丟失referrer。并且,這種情況下,也無法使用window.opener的方式去獲取丟失的referrer了。

已測試:

Maxthon2.5.2,Firefox的FireGesture插件,Chrome3.0+,Opera9.6,Safari3.2。

點擊Flash內部鏈接
點擊Flash上到達另外一個網站的時候,Referrer的情況就比較雜亂了。

IE下,通過客戶端Javascript的document.referrer讀取到的值是空的,但是如果你使用流量監控軟件看一下的話,你會發現,實際上HTTP請求中的Referer報文頭卻是有值的,這可能是IE實現的Bug。同時,這個值指向的是Flash文件的地址,而不是來源網頁的地址。

Chrome4.0下點擊Flash到達新窗口之后,Referrer也是指向的Flash文件的地址,而不是源網頁的地址。

Chrome3.0和Safari3.2是一樣的,都是會丟失Referrer信息。

Opera則和Firefox一樣,Referrer的值都是來源網頁的地址。

HTTPS跳轉到HTTP
從HTTPS的網站跳轉到HTTP的網站時,瀏覽器是不會發送referrer的。這個各大瀏覽器的行為是一樣的。

例如,我們在HTTPS下使用Google Reader或是Gmail的時候,點擊某個鏈接去到另外一個網站,那么從技術上來說,這樣的訪問和用戶直接鍵入網址訪問是沒有什么分別的。

Referrer丟失對于廣告流量監控的影響
Referrer如果丟失,Web Analytics就會丟掉很重要的一部分信息了,特別對于廣告流量來說,就無法知道實際來源了。目前國內好多用了Google Adsense廣告的網站,都使用了window.open的方式來打開廣告鏈接,因此IE下會丟失Referrer,而我們知道,IE是目前市場份額最大的瀏覽器,因此其影響是很大的。很多流量統計工具會因此將這部分流量歸入“直接流量”,和用戶直接鍵入網址等價了。

對于這樣的情況,需要讓廣告投放者在投放廣告的時候,給著陸頁面的Url加上特定的跟蹤參數。

例如,某個Flash廣告,點擊之后到達的網址是http://www.example.com/,為了監控此流量是從哪個渠道過來的,我們可以修改此投放的著陸Url,改成http://www.example.com/?src=sina,類似這種方式,然后在著陸頁面中使用Javascript代碼提取此src參數,這樣就可以得到廣告來源信息。

在投放Google Adwords的時候,后臺系統有一個“自動標記”的選項,當啟用此選項的時候,Google在生成所有廣告的著陸頁面Url的時候,就會自動加上一個gclid的參數,這個參數能夠將Google Analytics后臺和Adwords廣告后臺的數據進行整合。這樣就可以知道廣告流量對應于哪個廣告系列,哪個廣告來源和廣告關鍵詞等信息了。和上面提到的思路其實是類似的。只不過Google自動幫你做了Url的修改了而已。

IE下referer為空的解決辦法
在IE下采用 window.location.href方式跳轉的話,referer值為空。而在標簽里面的跳轉的話 referer就不會空。所以,通過以下代碼就可以解決這個IE問題

復制代碼 代碼如下:

function gotoUrl(url){
     if(window.VBArray){
         var gotoLink = document.createElement('a');
         gotoLink .href = url;
         document.body.appendChild(gotoLink);
         gotoLink .click();
     }else{
       window.location.href = url;
     }
 }

禁止瀏覽器在訪問鏈接時不要帶上referer
我們在從一個網站點擊鏈接進入另一個頁面時,瀏覽器會在header里加上Referer值,來標識這次訪問的來源頁面。但是這種標識有可能會泄漏用戶的隱私,有時候我不想讓其他人知道我是從哪里點擊進來的,能否有手段可以讓瀏覽器不要發送Referer呢?

•使用新增的html5的解決方案,使用rel="noreferrer",聲明連接的屬性為noreferrer,目前只有chrome4+支持.
•使用中間頁面,但實際上還是發送referrer的,比如使用Google的連接轉向,noreferrer.js.
•使用javascript協議鏈接中轉,參見下面的說明.

新開一個窗口,相當于target="_blank":

復制代碼 代碼如下:

function open_window(link){ 
    var arg = '/u003cscript/u003elocation.replace("'+link+'")/u003c/script/u003e';
    window.open('javascript:window.name;', arg);
}
</CODE>

轉向到一個連接,相當于target="_self":
復制代碼 代碼如下:

function redirect(link){ 
    var arg ='/u003cscript/u003etop.location.replace("'+link+'")/u003c/script/u003e';
    var iframe = document.createElement('iframe');
    iframe.src='javascript:window.name;';
    iframe.name=arg;
    document.body.appendChild(iframe);
}
</CODE>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲xxx视频| 国产欧美精品久久久| 国产精品久久久久久久久久久久久| 久久青草精品视频免费观看| 亚洲精品一区中文| 国内精品久久久久影院 日本资源| 欧美激情一区二区三区在线视频观看| 欧美成aaa人片在线观看蜜臀| 亚洲国产欧美在线成人app| 国产欧美日韩专区发布| 欧美日韩国产限制| 91香蕉亚洲精品| 色综合色综合久久综合频道88| 久99久在线视频| 青青久久av北条麻妃黑人| 欧美福利小视频| 亚洲美腿欧美激情另类| 91精品国产免费久久久久久| 中文字幕视频一区二区在线有码| 国产91对白在线播放| 成人激情视频在线播放| 夜夜嗨av一区二区三区四区| 亚洲国产精品999| 中文字幕日韩在线观看| 国产在线观看精品一区二区三区| 久久久久久噜噜噜久久久精品| 国产91在线视频| 国产丝袜高跟一区| 黄色一区二区三区| 亚洲黄在线观看| 久久综合久中文字幕青草| 国内精品一区二区三区| 精品久久久久久久久国产字幕| 国产精品色婷婷视频| 亚洲一级一级97网| 国产综合香蕉五月婷在线| 日本在线观看天堂男亚洲| 欧美国产亚洲视频| 国产午夜一区二区| 亚洲一区国产精品| 日韩中文综合网| 国产日韩精品一区二区| 久久高清视频免费| 中文字幕日韩在线视频| 国产精品女主播| 精品视频偷偷看在线观看| 一本大道久久加勒比香蕉| 成人天堂噜噜噜| 久久免费视频网站| 欧美激情亚洲精品| 懂色aⅴ精品一区二区三区蜜月| 亚洲国产精品大全| 日本精品中文字幕| 久久精品一区中文字幕| 久久久精品美女| 黑丝美女久久久| 日韩欧美在线第一页| 91av在线免费观看| 成人国产精品日本在线| 日韩电影第一页| 欧美精品午夜视频| 91久久久国产精品| 亚洲精品福利免费在线观看| 5252色成人免费视频| 色诱女教师一区二区三区| 久久中国妇女中文字幕| www.日韩系列| 九色91av视频| 国产丝袜一区二区三区免费视频| 国产免费一区视频观看免费| 日韩国产激情在线| 国产区精品在线观看| 一区二区成人精品| 国产亚洲视频在线| 亚洲一级黄色片| 美女av一区二区三区| 中文字幕av一区中文字幕天堂| 久久91亚洲人成电影网站| 欧美成人免费在线视频| 国产精品日韩av| 久久在精品线影院精品国产| 国产成人欧美在线观看| 欧美日韩免费在线观看| 午夜免费日韩视频| 国产丝袜精品视频| 精品自拍视频在线观看| 日韩黄色在线免费观看| 亚洲人成网站999久久久综合| 青青草成人在线| 狠狠色噜噜狠狠狠狠97| 日本一本a高清免费不卡| 欧美精品videossex88| 亚洲精品乱码久久久久久金桔影视| 亚洲精品美女网站| 丁香五六月婷婷久久激情| 欧美日韩国产一区在线| 日韩国产中文字幕| 91免费看片在线| 97精品国产97久久久久久免费| 亚洲一区二区自拍| 亚洲大胆人体视频| 亚洲第一网站免费视频| 日韩国产在线看| 亚洲a级在线播放观看| 亚洲另类图片色| 中文日韩电影网站| 国产精品欧美日韩一区二区| 国产精品久久久久久久久久久久久久| 欧美疯狂性受xxxxx另类| 成人精品久久久| 97视频在线播放| 亚洲男人的天堂在线| 久久香蕉国产线看观看av| 一本一道久久a久久精品逆3p| 国内免费精品永久在线视频| 国产999精品久久久影片官网| 亚洲欧美综合图区| 亚洲色图美腿丝袜| 欧美福利视频在线观看| 国产99久久久欧美黑人| 成人久久精品视频| 亚洲精品一二区| 欧美亚洲国产视频| 91麻豆国产精品| 日韩精品在线观看一区二区| 国产亚洲激情在线| 欧美日韩一区二区三区| 国内免费精品永久在线视频| 亚洲图片欧美日产| 欧美亚洲成人免费| 国产成人亚洲综合91| 久久99国产精品自在自在app| 欧美中文在线观看| 久久久www成人免费精品| 亚洲精品www久久久| 亚洲欧美日韩一区二区在线| 成人黄色中文字幕| 久久91亚洲精品中文字幕奶水| 国产日韩欧美综合| 91成人在线观看国产| 欧美大尺度在线观看| 欧美日韩黄色大片| 久久精彩免费视频| 在线视频国产日韩| 欧美大荫蒂xxx| 国产精品久久色| 久久天天躁狠狠躁夜夜躁| 在线视频日韩精品| 91久久久在线| 欧美激情视频一区二区| 91极品女神在线| 国产一区二区三区精品久久久| 久久艳片www.17c.com| 欧美日韩综合视频网址| 最新91在线视频| 97香蕉超级碰碰久久免费的优势| 日韩视频中文字幕| 久久久精品999| 久久久久久久久综合| 亚洲伊人久久大香线蕉av| 国产精品久久久久久久久| 久久九九亚洲综合| 午夜精品一区二区三区在线| 日本免费一区二区三区视频观看|