2012-02-01 57 views
0

我編寫了一個腳本,它檢測來自幾個搜索引擎的引用URL,然後將此值(而不是mc_u20變量)傳遞到某個服務器以供某處使用。該腳本的作用就像是一種享受,除了一個大問題,它不會跟蹤Google搜索結果。所以來自Google的任何結果都不會註冊。下面是腳本:無法從JavaScript中的對象讀取「Google」

var mc_searchProviders = {"search_google":"google.co","search_bing":"bing.com","search_msn":"search.msn","search_yahoo":"search.yahoo","search_mywebsearch":"mywebsearch.com","search_aol":"search.aol.co", "search_baidu":"baidu.co","search_yandex":"yandex.com"}; 
var mc_socialNetworks = {"social_facebook":"facebook.co","social_twitter":"twitter.co","social_google":"plus.google."}; 
var mc_pageURL = window.location +''; 
var mc_refURL = document.referrer +''; 

function mc_excludeList() { 
if (mc_refURL.search('some URL') != -1) { 
    return false; //exclude some URL 
} 
if (mc_refURL.search('mail.google.') != -1) { 
    return false; //exclude Gmail 
} 
if (mc_refURL.search(mc_paidSearch) != -1) { 
    return false; //exclude paidsearch 
} 
else { 
    mc_checkURL(); 
} 
} 

mc_excludeList(); 

function mc_checkURL() { 
    var mc_urlLists = [mc_searchProviders, mc_socialNetworks], 
i,mc_u20; 
for (i = 0; i < mc_urlLists.length; i++) { 
    for (mc_u20 in mc_urlLists[i]) { 
    if(!mc_urlLists[i].hasOwnProperty(mc_u20)) 
    continue; 
    if (mc_refURL.search(mc_urlLists[i][mc_u20]) != -1) { 
     mc_trackerReport(mc_u20); 
     return false; 
    } 
    else if ((mc_refURL == '') && (mc_directTracking === true)){ 
     mc_u20 = "direct_traffic"; 
     mc_trackerReport(mc_u20); 
     return false; 
     } 
     } 
    } 
} 

最討厭的事情是,我有我的本地機器上(本測試通過與實際谷歌搜索URL填充mc_refURL,它就像一個魅力,我還以爲也許當通過第一個mc_searchProviders對象進行搜索時,它會以某種方式跳過第一個實例,所以我添加了一個空白對象,但這仍然不起作用,更令人討厭的是,對於其他每個搜索引擎,mc_u20變量似乎都會填充我需要什麼

這使我瘋了,誰能看到這裏有什麼問題嗎?我可能還會提到我登錄谷歌,但我沒有看到如何s會影響腳本,因爲他們的博客帖子(11月份)表示他們正在過濾關鍵字,而不會阻止引用的URL被傳遞。

+0

請注意,你永遠不能依靠引用已被設置 - 它可以被主動剝離標題太 – mplungjan 2012-02-01 10:56:46

+0

那麼說:你可以轉到谷歌,點擊搜索鏈接,然後在地址欄或(對於Firefox)中嘗試'javascript:alert(document.referrer)'點擊ctr-shift-k並嘗試'alert(document.referrer)' – mplungjan 2012-02-01 10:58:40

+0

是真的,我知道這一點,但暫時這是我能做的最好的事情,但是這個腳本正在工作谷歌也)不是2個星期前。它不能是我把這個腳本放在網站上,因爲否則它會將所有其他搜索引擎的標題去掉? – zik 2012-02-01 10:58:48

回答

1

對了,我想清楚發生了什麼事情。在腳本的第一部分中排除了您自己的網址(請參閱'some URL'的位置,假設它設置爲www.example.com。在Google中,如果我搜索了example並且Google返回了www.example.com作爲第一個搜索結果,那麼在引薦網址中它將包含www.example.com 。因此,爲什麼劇本突破,也許有人會發現這將有用的將來。