Shi Zhuolin's Blog - JavaScript
type: channel
link: http://shizhuolin.com/category/javascript/
items: js实现完整的css3选择器.
items: 简易js框架，基于js对象类操作.
items: 浮动网页调色板(js)
items: 网页关键词频率计算（词频计算js版）

js实现完整的css3选择器.
type: item
date: 2014-03-01T07:30:00+00:00
description: 等同"selectorAPI", 基于状态机,每个css指令调用其对应的特定函数cssSelector.jsif (!String.prototype.trim) String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }; if (!Array.prototype.indexOf) Array.prototype.indexOf = function(searchElement /*, fromIndex */) { var n, k, t = Object(this), len = t.length >>> 0; if (len === 0) return -1; n = 0; if (arguments.length > 1) { n = Number(arguments[1]); if (n != n) { n = 0; } else if (n != 0 && n != Infinity && n != -Infinity) { n = (n > 0 || -1) * Math.floor(Math.abs(n)); } } if (n >= len) return -1; for (k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); k < len; k++) if (k in t && t[k] === searchElement) return k; return -1; }; if (!Array.prototype.map) { Array.prototype.map = function(callback, thisArg) { var T, A, k; var O = Object(this); var len = O.length >>> 0; if (thisArg) T = thisArg; A = new Array(len); k = 0; while (k < len) { var kValue, mappedValue; if (k in O) { kValue = O[k]; mappedValue = callback.call(T, kValue, k, O); A[ k ] = mappedValue; } k++; } return A; }; } window.joop = joop = (function() { var fn = { extend: function(destination) { for (var i = 1, length = arguments.length; i < length; i++) for (var property in arguments[i]) destination[property] = arguments[i][property]; return destination; }, isFunction: function(object) { return typeof object === "function"; }, isString: function(object) { return typeof object === "string"; }, isNumber: function(object) { return typeof object === "number"; }, toArray: function(iterable) { if (!iterable) return new Array; if ("toArray" in iterable) return iterable.toArray(); var length = iterable.length || 0, results = new Array(length); while (length--) results[length] = iterable[length]; return results; }, unique: function(array) { for (var i = 0, results = [], length = array.length; i < length; i++) if (results.indexOf(array[i]) === -1) results.push(array[i]); return results; } }; var ready = (function(arg) { var queue = [], loaded = 0, onload = window.onload || …

简易js框架，基于js对象类操作.
type: item
date: 2014-03-01T07:23:00+00:00
description: 支持css选择器,ui界面，表单验证。2d,3D的网页绘图（vml和纯js实现）, 命名空间，js类集成，element扩展全部代码点这里下载对象目录float zhuozhuo.version版本(3.0起增加名称空间)object zhuozhuo.namespace(namespace)注册名称空间 并且返回此注册名称空间对象class zhuozhuo.zclass(class...)创建类或继承类,允许多继承(查看注解)object zhuozhuo.getById(argv...)根据一个或多个参数获取并包装对象(查看注解) 单参数返回zdom多参数返回arrayobject zhuozhuo.getBySelector(String selectors[, isAll])根据css规则包装输出ZDOM数组 如果isAll存在且为1或true则输出zdom数组,否则只输出一个对象浏览器信息string zhuozhuo.browser.version浏览器内核版本(IE, Opera显示浏览器版本)bool zhuozhuo.browser.kernel.isTrident 浏览器内核 IEbool zhuozhuo.browser.kernel.isGecko 浏览器内核 Firefox,MozillaSuite/SeaMonkey,Mozilla,Thunderbirdbool zhuozhuo.browser.kernel.isPresto 浏览器内核 Operabool zhuozhuo.browser.kernel.isWebKit 浏览器内核 Safaribool zhuozhuo.browser.kernel.isKHTML 浏览器内核 Konquerorbool zhuozhuo.browser.features.isXPath 是否支持xpathbool zhuozhuo.browser.features.isSelectorsAPI 是否支持css选择器工具string zhuozhuo.util.getClass(object) 返回对象类别字串object zhuozhuo.util.extend(destination, source) source对象合并到destination上 相同的方法或涵数覆盖 返回 destinationobject zhuozhuo.util.clone(object) 返回object的浅表复制bool zhuozhuo.util.isArray(object) 判断object是否数组bool zhuozhuo.util.isFunction(object) 判断object是否函数bool zhuozhuo.util.isNumber(object) 判断object是否数字bool zhuozhuo.util.isUndefined(object) 判断object是否未定义bool zhuozhuo.util.isString(object) 判断object是否是字符串array zhuozhuo.util.toArray(iteralbe) 把iteralbe转换为数组void zhuozhuo.util.fnEmpty() 空function函数bool zhuozhuo.util.fnTrue() 返回true的函数string zhuozhuo.util.param(object) 序列化objectobject zhuozhuo.util.trys(Function...) 执行多个function并返回最早的正确结果String zhuozhuo.util.string.trim(value) 去除左右两边的空格Integer zhuozhuo.util.string.wlength(value) 按英文长度返回字符串长度,一个汉字相当于两个英文字符String zhuozhuo.util.string.wsubstr(value, wstart[, wlength]) 按英文长度从开始位置截取指定长度字符串 一个汉字相当于两个英文字符String zhuozhuo.util.string.wsubstring(value, wstart, wend) 按英文长度截取指定范围的字符串Array zhuozhuo.util.array.each(array, Function handler(Object object, Integer index)) 迭代数组 并 相同的参数，面向所有的元素。返回调用方法的结果。第一参数数组值,第二个参数索引,返回执行结果数组Array zhuozhuo.util.array.uniq(array) …

浮动网页调色板(js)
type: item
date: 2014-03-01T06:59:00+00:00
description: /* 名称:调色版 制作:石卓林 QQ:383193853 url:http://www.my586.com mail:szl1982szl@163.com 时间:2005/06/02 22:54 使用说明: 用事件调用 select_color(\'需要设置的属性1|需要设置的属性2|需要设置的属性3\') 例: onClick="javascript:select_color('this.document.all.text0.value|this.document.all.text1.value') */ function color_select(){ var Num16_str = new Array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');//十六进制字符串 var Num16;//用于包存十六进制的颜色 var i_1,i_2,i_3;//定义六个的变量用于保存十六进制数 var i=3;//定义颜色步进不可修改 var num=0; var w = 16;//定义单元格宽度 var h = 16;//定义单元格高度 var html = ''; html += ' '; ColorCode '; html += 'JC调色板Ver1.0 '; html += ' '; html += ' '; html += ' '; html += ''; //定义输出 for(i_1=0;i_1<16;i_1+=i){ for(i_2=0;i_2<16;i_2+=i){ for(i_3=0;i_3<16;i_3+=i){ //生成十六进制颜色代码 Num16 = '#' + Num16_str[i_1] + Num16_str[i_1] + Num16_str[i_2] + Num16_str[i_2] + Num16_str[i_3] + Num16_str[i_3]; Num16 = ' ' if(num % 18 == 0){ html += ' ' + Num16; }else{ html += Num16; } num++; } } } html += ' '; html += ' '; return html; } function select_yes(str){ this.document.all.color_Layer_1.style.visibility = 'hidden';//隐藏取色器 if(str!=false){ object_str = object_str.split('|');//设置要赋值的属性 for(var i=0;i<str.length;i++){ eval(object_str[i]+'= str');//赋值给预定对象 } } } function select_color(name){ if(name ==null){ alert('调用select_color错误\n正确格式\nselect_color(\'需要设置的属性1|需要设置的属性2|需要设置的属性3\')\n例:\nonClick="javascript:select_color(\'this.document.all.text.value\')');//错误提示信息 }else{ if(select_color_ok != true){//判断是否第一次启动取色器 this.document.all.color_Layer_1.innerHTML = color_select();//让取色器根据对象id显示新的内容 select_color_ok = true;//设置已经使用的标志 } this.document.all.color_Layer_1.style.posTop=event.clientY+this.document.body.scrollTop;//设置y坐标 this.document.all.color_Layer_1.style.posLeft=event.clientX+this.document.body.scrollLeft;//设置x坐标 this.document.all.color_Layer_1.style.visibility = '';//显示取色器 object_str = name;//设置取值对象 } } //写代码显示层 this.document.write(' '); var select_color_ok = false;//初始化使用标志 var object_str;//设置变量用于保存目标值属性的字符串

网页关键词频率计算（词频计算js版）
type: item
date: 2014-03-01T04:14:00+00:00
description: 不需要词库，直接分割网页内容提取词语.并且计算词语出现次数按照从多到少排序, 这里能区分中英文词语,最开始用于广告匹配数据预处理.用js在访客客户端执行