referrer
by brico
JavaScript
// problem: is r in engines?
var r = document.referrer,
engines = {
'google': "google.com/url",
'bing': "bing.com/search",
'yahoo': "search.yahoo.com/search",
'ask': "ask.com",
'dogpile': "dogpile.com",
'blekko': "blekko.com",
'aol': "search.aol.com",
'duckduckgo': "duckduckgo.com",
'search': "search.com/search",
'lycos': "search.lycos.com",
'info': "info.com",
'baidu': "baidu.com/s",
'sogou': "sogou.com/web"
},
keyIfValInStr = function (s, obj) {
for (key in obj) {
if (typeof key === 'string') {
if (s.indexOf(obj[key]) !== -1) {
return key;
}
}
}
return false;
},
// partial application seems useful for humans here
isSearchVisitor = function (referrer) {
return keyIfValInStr(referrer, engines);
};
// let's see:
console.log(r);
console.log(isSearchVisitor("http://google.com")); //false
console.log(isSearchVisitor("http://google.com/url")); //'google'
console.log(isSearchVisitor("")); //false
console.log(isSearchVisitor(r)) // probably false
// or do a one-off, i.e. the collegeanswer thing
console.log(keyIfValInStr(r, {'yup': 'jsfiddle.net'})) //yup