本人自用的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 可拖动列表实现代码
Dec 13 Javascript
深入document.write()与HTML4.01的非成对标签的详解
May 08 Javascript
javascript实现的HashMap类代码
Jun 27 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
Apr 10 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
Jul 07 Javascript
清除js缓存的多种方法总结
Dec 09 Javascript
使用JavaScript实现alert的实例代码
Jul 06 Javascript
vue教程之toast弹框全局调用示例详解
Aug 24 Javascript
vue组件初学_弹射小球(实例讲解)
Sep 06 Javascript
详解vue mint-ui源码解析之loadmore组件
Oct 11 Javascript
基于Node.js实现压缩和解压缩的方法
Feb 13 Javascript
axios 实现post请求时把对象obj数据转为formdata
Oct 31 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
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
php实现对象克隆的方法
2015/06/20 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
php链式操作的实现方式分析
2019/08/12 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
JavaScript实现梯形乘法表的方法
2015/04/25 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
跟老齐学Python之类的细节
2014/10/13 Python
python 调用win32pai 操作cmd的方法
2017/05/28 Python
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
2018/05/26 Python
Flask框架信号用法实例分析
2018/07/24 Python
Python 计算任意两向量之间的夹角方法
2019/07/05 Python
Python八皇后问题解答过程详解
2019/07/29 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
深入浅析Python代码规范性检测
2020/07/31 Python
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
办公自动化专业大学生职业规划书
2014/03/06 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
草房子读书笔记
2015/06/29 职场文书
房产遗嘱范本
2015/08/06 职场文书
企业年会祝酒词
2015/08/11 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书