本人自用的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 权威指南(第四版) 读书笔记
Aug 11 Javascript
初窥JQuery(二) 事件机制(1)
Nov 25 Javascript
js 弹出菜单/窗口效果
Oct 30 Javascript
javascript获取checkbox复选框获取选中的选项
Aug 12 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
Aug 24 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
Nov 30 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
Jan 05 Javascript
原生js实现可拖拽效果
Feb 28 Javascript
node前端模板引擎Jade之标签的基本写法
May 11 Javascript
vue项目创建步骤及路由router
Jan 14 Javascript
webpack+vue.js构建前端工程化的详细教程
May 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
PHP中的日期及时间
2006/11/23 PHP
php实现的MySQL通用查询程序
2007/03/11 PHP
linux php mysql数据库备份实现代码
2009/03/10 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
JAVASCRIPT keycode总结
2009/02/04 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
js实现DOM走马灯特效的方法
2015/01/21 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
使用Vue实现简单计算器
2020/02/25 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
python元组的概念知识点
2019/11/19 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
详解python logging日志传输
2020/07/01 Python
请写出 float x 与"零值"比较的 if 语句
2016/01/04 面试题
项目建议书模板
2014/05/12 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
幽默导游词开场白
2015/05/29 职场文书
校运会宣传稿大全
2015/07/23 职场文书
Mysql数据库命令大全
2021/05/26 MySQL
详解JVM系列之内存模型
2021/06/10 Javascript