现在Javascript库海量,流行的也多,比如jQuery,YUI等,虽然功能强大,但也是不万能的,功能不可能涉及方方面面,自己写一个的JS库是对这些的补充,很多也比较实用,把应用到项目中中去也比较方面,这也是对工作的一些积累,也加深对知识的理解。
2012-6-20更新,添加设置Cookie,获取Cookie,删除Cookie方法。很实用哦.......................
2012-7-22更新,表格排序,获取URL参数,批量清除Cookie...
2012-8-24更新,动态加载JS,Ajax封装,HTML编码...
/* * Name : Kingwell JavaScript Library v1.5 * Author : Kingwell Leng * E-mial : jinhua.leng ### gamil.com * Blog : http://www.cnblogs.com/kingwell/ http://kingwell-leng.iteye.com/admin * Date : 2013-4-31 15:07 */ (function (w, d) { if (!window.KW) { window.KW = {}; } var location = window.location, de = d.documentElement, userAgent = navigator.userAgent.toLowerCase(), ie6 = /msie 6.0/.test(userAgent), opera = /opera/.test(userAgent), ie = /msie/.test(userAgent) && !opera, safari = /webkit/.test(userAgent), ff = /firefox/.test(userAgent); var tip = { require : '缺少参数,参数必须的', rule : '参数不合法' }; KW = { name : 'Kingwell Javascript Library', version : '1.5', debug : true, namespace : function (name) { var parts = name.split('.'); var current = KW; for (var i in parts) { if (!current[parts[i]]) { current[parts[i]] = {}; } current = current[parts[i]]; } }, Dom : { $ : function (id) { return typeof id === 'string' ? d.getElementById(id) : id; }, remove : function (o) { var obj = this.$(o); if (!obj) { return; } return obj.parentNode.removeChild(obj); }, setOpacity : function (obj, val) { var vals = (typeof obj === "number" && val <= 100 && val >= 0) ? val : 100; if (!obj) { return; } if (ie) { obj.style.filter = 'alpha(opacity=' + vals + ')'; } else { obj.style.opacity = vals / 100; } }, getMaxZindex : function (o) { var maxZindex = 0; var obj = o ? o : '*'; var divs = d.getElementsByTagName(obj); for (z = 0; z < divs.length; z++) { maxZindex = Math.max(maxZindex, divs[z].style.zIndex); } return maxZindex; }, createElement : function (type, prop) { var tmp = d.createElement(type); for (var i in prop) { tmp.setAttribute(i, prop[i]); } return tmp; }, createTextNode : function (txt) { return d.createTextNode(txt); }, hasAttr : function (obj, attr) { obj.getAttribute(attr); return obj; }, setAttr : function (obj, attr) { var self = this; for (var i in attr) { if (i === 'class') { self.addClass(obj, attr[i]); } else { obj.setAttribute(i, attr[i]); } } return obj; }, removeAttr : function (obj, attr) { obj.removeAttribute(attr); return obj; }, getClass : function (c, pd) { var all = pd ? d.getElementsByName(pd).getElementsByTagName("*") : d.getElementsByTagName("*"), str = "", n = []; for (var i = 0; i < all.length; i++) { if (KW.Dom.hasClass(all[i], c)) { n.push(all[i]); } } return n; }, addClass : function (o, str) { var obj = this.$(o); if (!obj) { return; } var className = obj.className; var reg = eval("/^" + str + "$ | " + str + "$|^" + str + " | " + str + " /"); if (reg.test(className)) { return; } if (className !== '') { obj.className = className + " " + str; } else { obj.className = str; } }, removeClass : function (o, str) { var obj = this.$(o); if (!obj) { return; } var className = obj.className; if (this.isNull(className)) { var reg = new RegExp(str, "g"); var n = className.replace(reg, ""); obj.className = n; } }, hasClass : function (o, str) { if (!o) { return; } var obj = this.$(o); var className = obj.className; var reg = eval("/^" + str + "$| " + str + "$|^" + str + " | " + str + " /"); if (reg.test(className)) { return true; } else { return false; } }, html : function (obj, html) { if (html) { obj.innerHTML = html; } else { return obj.innerHTML; } }, text : function (obj, text) { if (text) { if (document.textContent) { obj.textContent = text; } else { obj.innerText = text; } } else { if (document.textConten) { return obj.textContent; } else { return obj.innerText; } } } }, Events : { addEvent : function (oTarget, oType, fnHandler) { var self = this; if (oTarget.addEventListener) { oTarget.addEventListener(oType, fnHandler, false); } else if (oTarget.attachEvent) { oTarget.attachEvent('on' + oType, fnHandler); } else { oTarget['on' + oType] = fnHandler; } }, removeEvent : function (oTarget, oType, fnHandler) { var self = this; if (oTarget.removeEventListener) { oTarget.removeEventListener(oType, fnHandler, false); } else if (oTarget.detachEvent) { oTarget.detachEvent('on' + oType, fnHandler); } else { oTarget['on' + oType] = null; } }, getEvent : function (ev) { return ev || window.event; }, getTarget : function (ev) { return this.getEvent(ev).target || this.getEvent().srcElement; }, stopPropagation : function () { if (window.event) { return this.getEvent().cancelBubble = true; } else { return arguments.callee.caller.arguments[0].stopPropagation(); } }, stopDefault : function () { if (window.event) { return this.getEvent().returnValue = false; } else { return arguments.callee.caller.arguments[0].preventDefault(); } } }, Ready : function (loadEvent) { if (!loadEvent) { return; } var init = function () { if (arguments.callee.done) { return; } else { arguments.callee.done = true; } loadEvent.apply(d, arguments); }; if (d.addEventListener) { d.addEventListener("DOMContentLoaded", init, false); return; } if (safari) { var _timer = setInterval(function () { if (/loaded|complete/.test(d.readyState)) { clearInterval(_timer); init(); } }, 10); } d.write('<script id="_ie_onload" defer src="javascript:void(0)"><\/script>'); var script = d.getElementById('_ie_onload'); script.onreadystatechange = function () { if (this.readyState == 'complete') { init(); } }; return true; }, Storage : { setItem : function (strName, strValue) { if (Storage) {} else if (Storage) {} else {} }, getItem : function (strValue) {}, removeItem : function (strValue) {}, removeAll : function () {} }, getScript : function (obj, callback, order) { var self = this, arr = obj, timeout, ord = order || true, num = 0, str = typeof obj === 'string'; if (!arr) { this.Error(tip.require); return; } function add() { if (arr[0] === undefined) { return; } var script = KW.Dom.createElement("script", { 'src' : (str ? obj : arr[num]), 'type' : 'text/javascript' }), header = d.getElementsByTagName("head")[0]; if (str) { if (script.readyState) { script.onreadystatechange = function () { if (script.readyState === 'loaded' || script.readyState === 'complete') { script.onreadystatechange = null; callback && callback(); } }; } else { script.onload = function () { callback && callback(); }; } } else { if (arr.length >= 1) { if (script.readyState) { script.onreadystatechange = function () { if (script.readyState === 'loaded' || script.readyState === 'complete') { script.onreadystatechange = null; arr.shift(); timeout = setTimeout(add, 1); } }; } else { script.onload = function () { arr.shift(); timeout = setTimeout(add, 1); }; } } else { clearTimeout(timeout); callback && callback(); } } header.appendChild(script); } add(); }, Ajax : function (obj) { if (!obj.url) { return false; } var method = obj.type || "GET"; var async = obj.async || true; var dataType = obj.dataType; var XHR = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); XHR.open(method, obj.url, async); XHR.setRequestHeader('If-Modified-Since', 'Thu, 06 Apr 2006 00:00: 00 GMT'); XHR.send(null); if (obj.sendBefore) { obj.sendBefore(); } XHR.onreadystatechange = function () { if (XHR.readyState == 4 && (XHR.status >= 200 && XHR.status < 300 || XHR.status == 304)) { if (obj.success) { if (dataType && dataType.toLocaleLowerCase() === "json") { obj.success.call(XHR, eval("(" + XHR.responseText + ")")); } else if (dataType && dataType.toLocaleLowerCase() === "xml") { obj.success.call(XHR, XHR.responseXML); } else { obj.success.call(XHR, XHR.responseText); } } if (obj.complete) { obj.complete(); } } else { if (obj.complete) { obj.complete(); } } }; }, Cookies : { setCookie : function (sName, sValue, oExpires, sPath, sDomain, bSecure) { var sCookie = sName + '=' + encodeURIComponent(sValue); if (oExpires) { var date = new Date(); date.setTime(date.getTime() + oExpires * 60 * 60 * 1000); sCookie += '; expires=' + date.toUTCString(); } if (sPath) { sCookie += '; path=' + sPath; } if (sDomain) { sCookie += '; domain=' + sDomain; } if (bSecure) { sCookie += '; secure'; } d.cookie = sCookie; }, getCookie : function (sName) { var sRE = '(?:; )?' + sName + '=([^;]*)'; var oRE = new RegExp(sRE); if (oRE.test(d.cookie)) { return decodeURIComponent(RegExp[$1]); } else { return null; } }, removeCookie : function (sName, sPath, sDomain) { this.setCookie(sName, '', new Date(0), sPath, sDomain); }, clearAllCookie : function () { var cookies = d.cookie.split(";"); var len = cookies.length; for (var i = 0; i < len; i++) { var cookie = cookies[i]; var eqPos = cookie.indexOf("="); var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; name = name.replace(/^\s*|\s*$/, ""); d.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; } } }, tabSort : function (sTableID, iCol, sDataType) { //排序函数,sTableID为目标,iCol哪列排序,为必需,sDataType可选 var oTable = document.getElementById(sTableID); var oTBody = oTable.tBodies[0]; var colDataRows = oTBody.rows; var aTRs = []; var len = colDataRows.length; function convert(sValue, sDataType) { //类型转,根据不同类型数据排序,比如,整型,日期,浮点,字符串,接受两个参数,一个是值,一个是排序的数据类型 switch (sDataType) { case "int": return parseInt(sValue); case "float": return parseFloat(sValue); case "date": return new Date(Date.parse(sValue)); default: return sValue.toString(); } } function geterateCompareTRs(iCol, sDataType) { //比较函数,用于sort排序用 return function compareTRs(oTR1, oTR2) { var vValue1, vValue2; if (oTR1.cells[iCol].getAttribute("value")) { //用于高级排序,比如图片,添加一个额外的属性来排序 vValue1 = convert(oTR1.cells[iCol].getAttribute("value"), sDataType); vValue2 = convert(oTR2.cells[iCol].getAttribute("value"), sDataType); } else { vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType); vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType); } if (vValue1 < vValue2) { return -1; } else if (vValue1 > vValue2) { return 1; } else { return 0; } }; } for (var i = 0; i < len; i++) { aTRs[i] = colDataRows[i]; } if (oTable.sortCol == iCol) { //如果已经排序,则倒序 aTRs.reverse(); } else { aTRs.sort(geterateCompareTRs(iCol, sDataType)); } var oFragment = document.createDocumentFragment(); var trlen = aTRs.length; for (var j = 0; j < trlen; j++) { oFragment.appendChild(aTRs[j]); } oTBody.appendChild(oFragment); oTable.sortCol = iCol; //设置一个状态 }, Browse : { isIE : ie, isFF : ff }, trim : function (str) { var re = /^\s*(.*?)\s*$/; return str.replace(re, '$1'); }, escape : function (str) { var s = ""; if (str.length === 0) { return ""; } s = str.replace(/&/g, "&"); s = s.replace(/</g, "<"); s = s.replace(/>/g, ">"); s = s.replace(/ /g, " "); s = s.replace(/\'/g, "'"); s = s.replace(/\"/g, """); return s; }, getQueryString : function (name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = location.search.substr(1).match(reg); if (r !== null) return unescape(r[2]); return null; }, Error : function (obj, info) { if (!this.debug) { return; } throw Error(obj); } }; Kingwell = KW; })(window, document);
不断地完善中....有些功能正在做,有些还在测试,现在还不完善。
相关推荐
建筑工地扬尘治理与文明施工检查表.docx
基于java的个性化旅游攻略定制系统设计与实现.docx
数学建模培训资料 数学建模实战题目真题答案解析解题过程&论文报告 导弹追击模型的建立与求解 共6页.pdf
基础课程辅助教学-JAVA-基于springBoot程序设计基础课程辅助教学系统设计与实现
适用人群:大学生 自学者 使用场景:大学生毕设 自学者练手项目 学习与交流 其它说明:部分资源来源网络及开源社区、仅供参考与学习、不可商用、若有侵权请联系删除! 内容概要:用springmvc实现的校园选课管理系统
java课程期末考试
C++ Vigenère 密码(解密代码)
工程研究中心申报基本情况一览表.docx
Vigenère 密码(加密代码)
密码学AES算法源代码,密码学实验
基于java的百货中心供应链管理系统设计与实现.docx
环境说明:开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat 开发软件:eclipse/myeclipse/idea Maven包:Maven 浏览器:谷歌浏览器。 项目均可完美运行
【资源说明】 大数据毕业设计 基于Python+Spark机器学习天气预测系统详细文档+全部资料.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
购物系统 微信小程序+PHP毕业设计 源码+数据库+论文+启动教程
BIM 人才培养的框架和方法 相关的标准
源项目文件
ActiveMQ消息中间件的测试案例
内容概要:本文全面解析了汽车电动化、智能化背景下,车规芯片SoC的重要性和发展趋势。首先概述了汽车行业发展三大趋势——新能源车市场崛起、智能化引领新潮流、商业模式及价值链重构。随后详细介绍了车规芯片SoC的应用领域,包括主控芯片、功率芯片、CMOS芯片、射频接收器、传感器、存储芯片及汽车面板,并阐述了它们的作用和技术需求。文章接着讨论了电子电气架构的演进路径,从分布式向集中式的演进对汽车芯片供应链带来的影响。最后探讨了汽车SoC的技术特征、应用领域、未来发展方向及其面临的挑战。 适合人群:汽车芯片设计师、汽车制造商、科研机构及相关行业的专业人士。 使用场景及目标:理解和掌握汽车芯片尤其是SoC在智能电动汽车中的应用及未来发展,帮助相关从业者做出更好的技术和商业决策。 其他说明:随着智能电动汽车市场的快速成长,车规芯片SoC作为核心技术将面临前所未有的机遇和挑战。
用于控制 Broadlink RM2/3 (Pro) 遥控器、A1 传感器平台和 SP2/3 智能插头的 Python 模块python-broadlink用于本地控制 Broadlink 设备的 Python 模块和 CLI。支持以下设备通用遥控器RM home、RM mini 3、RM plus、RM pro、RM pro+、RM4 mini、RM4 pro、RM4C mini、RM4S、RM4 TV mate智能插头SP mini、SP mini 3、SP mini+、SP1、SP2、SP2-BR、SP2-CL、SP2-IN、SP2-UK、SP3、SP3-EU、SP3S-EU、SP3S-US、SP4L-AU、SP4L-EU、SP4L-UK、SP4M、SP4M-US、Ankuoo NEO、Ankuoo NEO PRO、Efergy Ego、BG AHC/U-01开关MCB1、SC1、SCB1E、SCB2出口BG 800, BG 900电源板MP1-1K3S2U、MP1-1K4S、MP2环境传感器A1报警套件S1C、S2KIT灯泡LB1、LB26 R1、LB2
这是一份关于五个城市的PM2.5监测数据文件,以CSV格式存储。数据涵盖了广州、北京、沈阳等地的空气质量情况,旨在帮助研究人员和数据分析人员更好地理解城市空气污染状况。 使用人群 适合对环境科学、大气污染研究感兴趣的科研工作者、学生及环保组织成员使用。 数据内容 包含五个主要城市的PM2.5浓度数据 时间跨度较长,覆盖多年数据 CSV格式方便导入各种数据分析软件进行进一步处理和分析