现在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);
不断地完善中....有些功能正在做,有些还在测试,现在还不完善。
相关推荐
代驾应用系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
线上书籍查阅系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
c语言教工工资管理系统
可保存图片,开源,绘制奇妙美丽的图片
# 基于Xilinx FPGA加速的面部评分系统 ## 项目简介 本项目是一个基于Xilinx FPGA加速的面部识别和评分系统,名为FaceScore。该项目在国际夏季学校中作为案例研究完成,旨在展示如何在嵌入式系统中高效部署深度学习应用。通过利用Xilinx的硬件加速技术,系统能够实现快速且高效的面部识别与评分功能。 ## 项目的主要特性和功能 1. 面部检测利用深度学习模型从视频流中识别出人脸,并输出人脸的坐标。 2. 硬件加速通过Xilinx FPGA加速深度学习模型的计算密集型部分,如卷积操作。 3. 面部评分对检测到的人脸进行特征提取,并通过图像分类CNN模型进行评分。 4. 整体架构项目包含ARM处理器(用于视频流和图像处理)、面部检测模块、DPU(FPGA上的软核)和面部评分模块。 ## 安装与使用步骤 假设用户已经下载了本项目的源码文件。 1. 环境准备 安装Xilinx提供的开发环境及相关工具链。
PHP学生成绩查询(源代码+论文)
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
Android项目之——漂亮的平台书架
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
c语言商品销售系统源码
android_jni操作指南
gee python 教程(西班牙语)
金融支付终端管理系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
教务管理系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
Android ListView下拉刷新 Demo
jackson-core-2.10.4.jar
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
Fourth report on synthetic kitchen
# 基于CC2640R2F的EEG数据收集系统 ## 项目简介 本项目是一个基于CC2640R2F芯片的BLE(蓝牙低功耗)应用程序,用于收集和分析EEG(脑电图)数据。它包含一个名为EEGservice的蓝牙服务,该服务支持读取和写入EEG数据。 ## 项目的主要特性和功能 硬件初始化代码包括CC2640R2F硬件资源的初始化,如GPIO、I2C、SPI、UART、UDMA、Crypto、RF等。 蓝牙服务实现了名为EEGservice的蓝牙服务,用于收集和分析EEG数据。 通信功能支持通过蓝牙与中央设备进行通信,提供读取和写入EEG数据的功能。 硬件调试支持调试硬件资源,如BQ25895电池充电管理芯片和ADS1299数据采集设备。 周期性任务虽然周期性任务在代码示例中并未实际使用,但提供了相应的函数和机制。 ## 安装使用步骤 1. 准备环境
VerticalSeekbar