本人自用的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命名冲突解决的五种方案分享
Mar 16 Javascript
jQuery设置和获取HTML、文本和值示例
Jul 08 Javascript
js实现点击添加一个input节点
Dec 05 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
Apr 26 Javascript
第二章之Bootstrap 页面排版样式
Apr 25 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
Aug 19 Javascript
JS转换HTML转义符的方法
Aug 24 Javascript
react 父组件与子组件之间的值传递的方法
Sep 14 Javascript
js实现手机web图片左右滑动效果
Dec 29 Javascript
jQuery中图片展示插件highslide.js的简单dom
Apr 22 jQuery
Vue组件中的data必须是一个function的原因浅析
Sep 03 Javascript
简单了解常用的JavaScript 库
Jul 16 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
2006/11/25 PHP
php不写闭合标签的好处
2014/03/04 PHP
PHP和javascript常用正则表达式及用法实例
2014/07/01 PHP
PHP函数http_build_query使用详解
2014/08/20 PHP
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
HTML DOM的nodeType值介绍
2011/03/31 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
2018/01/25 Javascript
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
python利用Guetzli批量压缩图片
2017/03/23 Python
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
Python读取Word(.docx)正文信息的方法
2018/03/15 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
高中学生期末评语
2014/04/25 职场文书
先进学校事迹材料
2014/12/30 职场文书
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
Redis实现短信验证码登录的示例代码
2022/06/14 Redis
nginx七层负载均衡配置详解
2022/07/15 Servers