本人自用的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下判断一个对象是否具有指定名称的属性的的代码
Jan 11 Javascript
基于jquery的获取浏览器窗口大小的代码
Mar 28 Javascript
jQuery 快速结束当前正在执行的动画
Nov 20 Javascript
jQuery的观察者模式详解
Dec 22 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
Feb 05 Javascript
jQuery中选择器的基础使用教程
May 23 Javascript
JavaScript兼容性总结之获取非行间样式案例
Aug 07 Javascript
AngularJS 文件上传控件 ng-file-upload详解
Jan 13 Javascript
JS实现加载和读取XML文件的方法详解
Apr 24 Javascript
微信、QQ、微博、Safari中使用js唤起App
Jan 24 Javascript
ES6的Fetch异步请求的实现方法
Dec 07 Javascript
vue-cli在 history模式下的配置详解
Nov 26 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过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
PHP检测用户语言的方法
2015/06/15 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
2019/09/16 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
ExtJS 2.2.1的grid控件在ie6中的显示问题
2009/05/04 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
VUE使用vuex解决模块间传值问题的方法
2017/06/01 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
Bootstrap实现下拉菜单多级联动
2017/11/23 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
2020/07/27 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
[57:47]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
Django之无名分组和有名分组的实现
2019/04/16 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
工厂保安员岗位职责
2014/01/31 职场文书
计算机大学生职业生涯规划书范文
2014/02/19 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
员工聘用合同范本
2015/09/21 职场文书
Python 数据可视化之Matplotlib详解
2021/11/02 Python