本人自用的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 相关文章推荐
JS实现悬浮移动窗口(悬浮广告)的特效
Mar 12 Javascript
js解决弹窗问题实现班级跳转DIV示例
Jan 06 Javascript
一个js过滤空格的小函数
Oct 10 Javascript
使用jQuery获得内容以及内容的属性
Feb 26 Javascript
基于Bootstrap重置输入框内容按钮插件
May 12 Javascript
简单分析javascript中的函数
Sep 10 Javascript
微信小程序 canvas API详解及实例代码
Oct 08 Javascript
JavaScript动态数量的文件上传控件
Nov 18 Javascript
AngularJS指令与指令之间的交互功能示例
Dec 14 Javascript
原生js实现对Ajax的封装(仿jquery)
Jan 22 Javascript
JavaScript实现多态和继承的封装操作示例
Aug 20 Javascript
实现vuex原理的示例
Oct 21 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实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
php输出文字乱码的解决方法
2019/10/04 PHP
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
Bootstrap进度条学习使用
2017/02/09 Javascript
Vue页面骨架屏的实现方法
2018/05/22 Javascript
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
浅谈javascript如何获取文件后缀名
2020/08/07 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
PyQt5 多窗口连接实例
2019/06/19 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
对Python 字典元素进行删除的方法
2020/07/31 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
UNIX特点都有哪些
2016/04/05 面试题
路政管理专业个人自荐信范文
2013/11/30 职场文书
入团者的自我评价分享
2013/12/02 职场文书
五型班组建设方案
2014/02/10 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL