本人自用的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比较文档位置
Apr 08 Javascript
javascript一点特殊用法
May 28 Javascript
更优雅的事件触发兼容
Oct 24 Javascript
jQuery Tools tooltip使用说明
Jul 14 Javascript
javascript中如何处理引号编码&amp;#034;
Aug 15 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
Sep 12 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
Dec 26 Javascript
node.js + socket.io 实现点对点随机匹配聊天
Jun 30 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
Nov 27 Javascript
Vue.js中的extend绑定节点并显示的方法
Jun 20 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
Jul 04 Javascript
使用PreloadJS加载图片资源的基础方法详解
Feb 03 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验证码函数的使用示例
2013/05/03 PHP
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
详解php的socket通信
2015/08/11 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
jquery 为a标签绑定click事件示例代码
2014/06/23 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
2015/09/04 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
2019/10/26 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
大学生村官任职感言
2014/01/09 职场文书
国庆节文艺活动方案
2014/02/03 职场文书
合作协议书范文
2014/08/20 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
交通事故和解协议书
2014/09/25 职场文书
2014年林业工作总结
2014/12/05 职场文书
部门2015年度工作总结
2015/04/29 职场文书
2015年行政执法工作总结
2015/05/23 职场文书
2016新年年会主持词
2015/07/06 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python