本人自用的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 相关文章推荐
初识JQuery 实例一(first)
Mar 16 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
Jan 17 Javascript
angularjs中的单元测试实例
Dec 06 Javascript
javascript基于DOM实现权限选择实例分析
May 14 Javascript
js中开关变量使用实例
Feb 24 Javascript
面试常见的js算法题
Mar 23 Javascript
使用D3.js制作图表详解
Aug 13 Javascript
js实现可以点击收缩或张开的悬浮窗
Sep 18 Javascript
JavaScript继承定义与用法实践分析
May 28 Javascript
JS实现点击按钮可实现编辑功能
Jul 03 Javascript
微信小程序如何获取用户收货地址
Nov 27 Javascript
微信小程序的授权实现过程解析
Aug 02 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
怎么使 Mysql 数据同步
2006/10/09 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
Javascript:为input设置readOnly属性(示例讲解)
2013/12/25 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
js表达式与运算符简单操作示例
2020/02/15 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
在Django的通用视图中处理Context的方法
2015/07/21 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
python使用mysql的两种使用方式
2018/03/07 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
高级护理实习生自荐信
2013/09/28 职场文书
安全教育心得体会
2013/12/29 职场文书
大学生自我鉴定评语
2014/01/27 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
工作态度检讨书
2014/02/11 职场文书
2016猴年春节问候语
2015/11/11 职场文书