/* * getElementsByClassName方法返回符合某个特定类的全部的元素的引用,tag和elem参数都是可选的 */ function getElementsByClassName(classname, tag, elem){ elem = elem || document; if (elem != $(elem) || elem == null) return false; //注意这个函数的parent.all的用法,它是用于确认parent是否是document的,并且区分了IE和Mozilia if (!tag) tag = "*"; var allTags = (tag == * && elem.all) ? elem.all : elem.getElementsByTagName(tag);
//创建一个正则,来检测是否包含指定的类名 classname = classname.replace(//-/g, "//-"); var regex = new RegExp("(^|//s*)" + classname + "(//s*|$)");
var matchElements = new Array(); var elem; for (var i = 0; i < allTags.length; i++) { elem = allTags[i]; if (regex.test(elem.className)) { //根据正则来检测类名 matchElements.push(elem); } }
/* * 获取显示窗口的width和height,返回一个包含width和height属性的的对象,不公开,只在本匿名函数内供其他方法调用 */ function getBrowserWindowSize(){ var de = document.documentElement; //获取根节点 var obj = { width : (window.innerWidth || (de.clientWidth) || document.body.clientWidth), height : (window.innerHeight || (de.clientHeight) || document.body.clientHeight) }
return obj; }
/* * 调试日志对象 */ function log(id){ id = id || SusaLogWindow ; var logWindow = null; //私有属性,用于在各个 var createWindow = function(){ //私有方法,用于动态生成一个列表节点 if (!document.body) { alert( document.body hasn/ t finished loading. ); return; } var browerWindowSize = getBrowserWindowSize(); var top = ((browerWindowSize.height - 200) / 2) || 0; //取得新窗口在浏览器中局中放置是的左上角的位置 var left = ((browerWindowSize.width - 200) / 2) || 0;
logWindow = document.createElement( ul ); //动态生成一个UL元素 logWindow.setAttribute( id , id);
logWindow.style.position = absolute ; //修饰UL元素 logWindow.style.top = top + px ; logWindow.style.left = left + px ;