本人自用的global.js库源码分享


Posted in Javascript onFebruary 28, 2015
var GLOBAL = {};
GLOBAL.namespace = function(str) {
  var arr = str.split("."), o = GLOBAL,i;
  for (i = (arr[0] = "GLOBAL") ? 1 : 0; i < arr.length; i++) {
    o[arr[i]] = o[arr[i]] || {};
    o = o[arr[i]];
  }
};
//Dom相关
GLOBAL.namespace("Dom");

GLOBAL.Dom.getNextNode = function (node) {
  node = typeof node == "string" ? document.getElementById(node) : node;
  var nextNode = node.nextSibling;
  if (!nextNode) {
    return null;
  }
  if (!document.all) {
    while (true) {
      if (nextNode.nodeType == 1) {
        break;

      } else {
        if (nextNode.nextSibling) {
          nextNode = nextNode.nextSibling;
        } else {
          break;
        }
      }
    }
    return nextNode;
  }
}

GLOBAL.Dom.setOpacity = function(node, level) {
  node = typeof node == "string" ? document.getElementById(node) : node;
  if (document.all) {
    node.style.filter = 'alpha(opacity=' + level + ')';
  } else {
    node.style.opacity = level / 100;
  }
};

GLOBAL.Dom.getElementsByClassName = function (str, root, tag) {
  if (root) {
    root = typeof root == "string" ? document.getElementById(root) : root;
  } else {
    root = document.body;
  }
  tag = tag || "*";
  var els = root.getElementsByTagName(tag), arr = [];
  for (var i = 0, n = els.length; i < n; i++) {
    for (var j = 0, k = els[i].className.split(" "), l = k.length; j < l; j++) {
      if (k[j] == str) {
        arr.push(els[i]);
        break;
      }
    }
  }
  return arr;
}
GLOBAL.namespace("Event");
GLOBAL.Event.stopPropagation = function(e) {
  e = window.event || e;
  if (document.all) {
    e.cancelBubble = true;
  } else {
    e.stopPropagation();
  }
};
GLOBAL.Event.getEventTarget = function(e) {
  e = window.event || e;
  return e.srcElement || e.target;
};

GLOBAL.Event.on = function(node, eventType, handler) {
  node = typeof node == "string" ? document.getElementById(node) : node;
  if (document.all) {
    node.attachEvent("on" + eventType, handler);
  } else {
    node.addEventListener(eventType, handler, false);
  }
};

//Lang相关
GLOBAL.namespace("Lang");
GLOBAL.Lang.trim = function(ostr) {
  return ostr.replace(/^\s+|\s+$/g, "");
};

GLOBAL.Lang.isNumber = function(s) {
  return !isNaN(s);
};

function isString(s) {
  return typeof s === "string";
}



function isBoolean(s) {
  return typeof s === "boolean";
}

function isFunction(s) {
  return typeof s === "function";
}

function isNull(s) {
  return s === null;
}

function isUndefined(s) {
  return typeof s === "undefined";
}

function isEmpty(s) {
  return /^\s*$/.test(s);
}

function isArray(s) {
  return s instanceof Array;
}

GLOBAL.Dom.get = function (node) {
  node = typeof node === "string" ? document.getElementById(node) : node;
  return node;
}

function $(node) {
  node = typeof node == "string" ? document.getElementById(node) : node;
  return node;
}


GLOBAL.Lang.extend = function(subClass, superClass) {
  var F = function() {
  };
  F.prototype = superClass.prototype;
  subClass.prototype = new F();
  subClass.prototype.constructor = subClass;
  subClass.superClass = subClass.prototype;
  if (superClass.prototype.constructor == Object.prototype.constructor) {
    superClass.prototype.constructor = superClass;
  }
};

GLOBAL.namespace("Cookie");
GLOBAL.Cookie = {
  read: function (name) {
    var cookieStr = ";" + document.cookie + ";";
    var index = cookieStr.indexOf(";" + name + "=");
    if (index != -1) {
      var s = cookieStr.substring(index + name.length + 3, cookieStr.length);
      return unescape(s.substring(0, s.indexOf(";")));
    } else {
      return null;
    }
  },
  set: function (name, value, expires) {
    var expDays = expires * 24 * 60 * 60 * 1000;
    var expDate = new Date();
    expDate.setTime(expDate.getTime() + expDays);
    var expString = expires ? ";expires=" + expDate.toGMTString() : "";
    var pathString = ";path=/";
    document.cookie = name + "=" + escape(value) + expString + pathString;
  },
  del: function (name, value, expires) {
    var exp = new Date(new Date().getTime() - 1);
    var s = this.read(name);
    if (s != null) {
      document.cookie = name + "=" + s + ";expires=" + exp.toGMTString() + ";path=/";
    }
  }
};
Javascript 相关文章推荐
javascript 跳转代码集合
Dec 03 Javascript
jQuery之$(document).ready()使用介绍
Apr 05 Javascript
js 字符串转换成数字的三种方法
Mar 23 Javascript
javascript数组去重的方法汇总
Apr 14 Javascript
在JavaScript中操作时间之getMonth()方法的使用
Jun 10 Javascript
浅谈JavaScript中null和undefined
Jul 09 Javascript
12种JavaScript常用的MVC框架比较分析
Nov 16 Javascript
鼠标悬停小图标显示大图标
Jan 22 Javascript
浅谈JavaScript对象与继承
Jul 10 Javascript
详解webpack编译多页面vue项目的配置问题
Dec 11 Javascript
JS中call和apply函数用法实例分析
Jun 20 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
Aug 10 Javascript
JS限制文本框只能输入数字和字母方法
Feb 28 #Javascript
javascript计时器详解
Feb 28 #Javascript
Lab.js初次使用笔记
Feb 28 #Javascript
js实现鼠标感应图片展示的方法
Feb 27 #Javascript
JQuery基础语法小结
Feb 27 #Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
Feb 27 #Javascript
分析了一下JQuery中的extend方法实现原理
Feb 27 #Javascript
You might like
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
php2html php生成静态页函数
2008/12/08 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
PHP动态页生成静态页的3种常用方法
2014/11/13 PHP
phpstorm 配置xdebug的示例代码
2019/03/31 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
关于js datetime的那点事
2011/11/15 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
jQuery模拟物体自由落体运动(附演示与demo源码下载)
2016/01/21 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
2017/03/02 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
python 多个参数不为空校验方法
2019/02/14 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
让Django的BooleanField支持字符串形式的输入方式
2020/05/20 Python
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
JBL英国官网:JBL UK
2018/07/04 全球购物
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
西安大雁塔导游词
2015/02/10 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
Vue3 Composition API的使用简介
2021/03/29 Vue.js
Pandas数据结构之Series的使用
2022/03/31 Python