Created
November 20, 2012 03:45
-
-
Save firedfox/4115808 to your computer and use it in GitHub Desktop.
holmes-im-v3-live800
This file contains hidden or 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() { | |
| // 虚拟URL的路径名。 | |
| // 可以按照需求修改,但必须以"/"开头。 | |
| var REQUEST_PATH = '/virtual/im'; | |
| // 虚拟URL的页面名。 | |
| // 修改时请保证页面名和元素id(或用来获取元素的函数)之间的对应关系。 | |
| var REQUEST_NAME = { | |
| 'live800-float' : function() { | |
| return getElementsByClassName(document, 'lim_float_icon')[0]; | |
| }, | |
| 'live800-invite' : function() { | |
| var btn = document.getElementById('invite_btn'); | |
| return btn && btn.getElementsByTagName('button')[0]; | |
| } | |
| }; | |
| // 以下内容请勿修改。 | |
| REQUEST_PATH += /\/$/.test(REQUEST_PATH) ? '' : '/'; | |
| window._hmt = window._hmt || []; | |
| var getElementsByClassName = function(elem, className) { | |
| if (elem.getElementsByClassName) { | |
| return elem.getElementsByClassName(className); | |
| } | |
| var elems = []; | |
| var children = elem.getElementsByTagName('*'); | |
| className = new RegExp("(^|\\s)" + className.replace(/\-/g, "\\-") + "(\\s|$)"); | |
| for (var i = 0, l = children.length; i < l; i++) { | |
| if (className.test(children[i].className)) { | |
| elems.push(children[i]); | |
| } | |
| } | |
| return elems; | |
| }; | |
| var on = function(elem, event, handler) { | |
| if (elem.addEventListener) { | |
| elem.addEventListener(event, handler, false); | |
| } else if (elem.attachEvent) { | |
| elem.attachEvent('on' + event, handler); | |
| } | |
| }; | |
| var isType = function(object, type) { | |
| return Object.prototype.toString.call(object) === '[object ' + type + ']'; | |
| }; | |
| var iterate = function(obj, func) { | |
| for (var i in obj) { | |
| if (obj.hasOwnProperty(i)) { | |
| func.call(obj, i, obj[i]); | |
| } | |
| } | |
| }; | |
| on(document, 'mouseup', function(e) { | |
| e = e || window.event; | |
| var target = e.target || e.srcElement; | |
| var request = {}; | |
| iterate(REQUEST_NAME, function(name, identifier) { | |
| request[name] = isType(identifier, 'Function') | |
| ? identifier() : document.getElementById(identifier); | |
| }); | |
| while (target && target != document) { | |
| iterate(request, function(name, object) { | |
| if (isType(object, 'Array') || isType(object, 'NodeList')) { | |
| for (var i = 0, l = object.length; i < l; i++) { | |
| (target === object[i]) | |
| && window._hmt.push(['_trackPageview', REQUEST_PATH + name + '/' + (i + 1)]); | |
| } | |
| } else { | |
| (target === object) && window._hmt.push(['_trackPageview', REQUEST_PATH + name]); | |
| } | |
| }); | |
| target = target.parentNode; | |
| } | |
| }); | |
| })(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment