Created
May 24, 2012 09:06
-
-
Save dirts/2780357 to your computer and use it in GitHub Desktop.
window.js
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
| var win = window, doc = document; | |
| var nav = win.navigator, UA = nav.userAgent; | |
| var loc = win.location, SH = loc.host; | |
| /*获取站点域名*/ | |
| function getDomain(){ | |
| var Domain = SH | |
| .toString(); | |
| var isHttps = Domain.indexOf('https'); | |
| if(isHttps == -1){ | |
| Domain = 'https://' + domain; | |
| }else{ | |
| Domain = 'http://' + domain; | |
| } | |
| return Domain; | |
| }; | |
| /*浏览器检测*/ | |
| function BrowserCheck(){ | |
| var win = window, doc = document; | |
| var nav = win.navigator, UA = nav.userAgent; | |
| var loc = win.location, domain = loc.search; | |
| } | |
| /* DOM */ | |
| function Trim(str){ | |
| return str.replace(/(^\s*)|(\s*$)/g, ""); | |
| } | |
| function contains(a, b){ | |
| if(a.compareDocumentPosition){ | |
| return !!(a.compareDocumentPosition(b) & 16); | |
| }else if(a.contains){ | |
| return a !== b && (a.contains ? a.contains(b) : true); | |
| } | |
| while ((b = b.parentNode)) | |
| if (a === b) return true; | |
| return false; | |
| }; | |
| /* 设置文本选择 */ | |
| function onUnselect(){ | |
| if(typeof userSelect === "string"){ | |
| return document.documentElement.style[userSelect] = "none"; | |
| } | |
| document.unselectable = "on"; | |
| }; | |
| /* 取消文本选择 */ | |
| function offUnselect(){ | |
| if(typeof userSelect === "string"){ | |
| return document.documentElement.style[userSelect] = "text"; | |
| } | |
| document.unselectable = "off"; | |
| }; | |
| /* get element id*/ | |
| function $id(id){ | |
| var o = document.getElementById(id) || false; | |
| return o; | |
| }; | |
| /* json to array : getKey( { 'name' : 'shouyan' , 'age' : '18' } ) // [ 'name' , 'age' ] */ | |
| function getKey(param){ | |
| var keys = []; | |
| for(key in param){ | |
| keys.push(key); | |
| } | |
| return keys; | |
| }; | |
| function getPosition(element){ | |
| var offsetLeft = element.offsetLeft , offsetTop = element.offsetTop; | |
| var current = element.offsetParent; | |
| while(current !== null){ | |
| offsetLeft += current.offsetLeft ; | |
| offsetTop += current.offsetTop ; | |
| current = current.offsetParent ; | |
| }; | |
| return { | |
| 'left' : offsetLeft , | |
| 'top' : offsetTop | |
| }; | |
| } | |
| /* addElment( 'div' , { 'id' : 'myid' , 'css' : ' c1 c2 c3 ' , 'name' : 'myname' , 'style' : 'border:1px solid #ccc' } , '要增加的内容') */ | |
| function addElement( tagName , param , html){ | |
| param = param || {}; | |
| html = (!html) ? null : html; | |
| var o = document.createElement(tagName); | |
| var keys = getKey(param); //返回json对象的key的数组 [ 'id' , 'css' ,'style'] | |
| for(var i=0;i<keys.length;i++){ | |
| var temp = keys[i]; | |
| if(temp=='style'){ | |
| o.style.cssText = param[temp]; | |
| }else if(temp =='class'){ | |
| o.className = param[temp]; | |
| }else{ | |
| o.setAttribute(temp,param[temp]); | |
| }; | |
| } | |
| if(html != null){ | |
| o.innerHTML = html; | |
| } | |
| return o; | |
| }; | |
| function getChilds(element){ | |
| var cn = element.childNodes, arr = []; | |
| for (var i = cn.length - 1; i >= 0; i--){ | |
| if(cn[i].nodeType == 1){ | |
| arr.push(cn[i]); | |
| } | |
| }; | |
| return arr; | |
| }; | |
| /* set element css style */ | |
| function CSS(o,param){ | |
| var keys = getKey(param); | |
| for (var i = keys.length - 1; i >= 0; i--) { | |
| o.style[keys[i]] = param[keys[i]]; | |
| }; | |
| } | |
| /* loadscripts( 'style/css.css' ) */ | |
| function loadscripts(url){ | |
| var patten = /(\.css|\.js)$/gi; | |
| var type = patten.exec(url)[0]; | |
| var temp; | |
| if( type == '.css' ){ | |
| temp = addElement('link' , { 'rel' : 'stylesheet' , 'href' : url ,'type' : 'text/css'}); | |
| document.getElementsByTagName('head')[0].appendChild(temp); | |
| }else if( type == '.js' ){ | |
| temp = addElement('script' , { 'src' : url , 'type' : 'text/javascript' } ); | |
| document.body.appendChild(temp); | |
| } | |
| }; | |
| /* loaders */ | |
| function loaders(param){ | |
| var type = getKey(param); | |
| var o; | |
| for (var i = type.length - 1; i >= 0; i--) { | |
| (function(k){ | |
| if(type[k] == 'css'){ | |
| o = addElement('link' , { 'rel' : 'stylesheet' , 'href' : param[type[k]] ,'type' : 'text/css'}); | |
| document.getElementsByTagName('head')[0].appendChild(o); | |
| }else if(type[k] == 'js'){ | |
| o = addElement('script' , { 'src' : param[type[k]] , 'type' : 'text/javascript' } ); | |
| document.body.appendChild(o); | |
| }; | |
| })(i); | |
| }; | |
| }; | |
| /*获取宽高*/ | |
| function getSize(o){ | |
| if(o == window){ | |
| return { | |
| 'width' : document.documentElement.clientWidth , | |
| 'height' : document.documentElement.clientHeight | |
| }; | |
| }else{ | |
| return{ | |
| 'width' : o.offsetWidth, | |
| 'height' : o.offsetHeight | |
| } | |
| } | |
| /*if(document.compatMode == 'CSS1Compat '){ | |
| return { | |
| 'width' : document.documentElement.clientWidth , | |
| 'height' : document.documentElement.clientHeight | |
| }; | |
| }else if(document.compatMode == 'BackCompat '){ | |
| return { | |
| 'width' : document.body.clientWidth , | |
| 'height' : document.body.clientHeight | |
| }; | |
| }*/ | |
| }; | |
| function toJSON(str){ | |
| var json = (new Function("return " + str))(); | |
| return json; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment