Skip to content

Instantly share code, notes, and snippets.

@dirts
Created May 24, 2012 09:06
Show Gist options
  • Save dirts/2780357 to your computer and use it in GitHub Desktop.
Save dirts/2780357 to your computer and use it in GitHub Desktop.
window.js
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