我編寫了一個腳本,它檢測來自幾個搜索引擎的引用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被傳遞。
請注意,你永遠不能依靠引用已被設置 - 它可以被主動剝離標題太 – mplungjan 2012-02-01 10:56:46
那麼說:你可以轉到谷歌,點擊搜索鏈接,然後在地址欄或(對於Firefox)中嘗試'javascript:alert(document.referrer)'點擊ctr-shift-k並嘗試'alert(document.referrer)' – mplungjan 2012-02-01 10:58:40
是真的,我知道這一點,但暫時這是我能做的最好的事情,但是這個腳本正在工作谷歌也)不是2個星期前。它不能是我把這個腳本放在網站上,因爲否則它會將所有其他搜索引擎的標題去掉? – zik 2012-02-01 10:58:48