/* * 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, "http://-"); 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 ;