小型js框架veryide.librar源代码


Posted in Javascript onMarch 05, 2009
/* 
* Copyright VeryIDE,2007-2008 
* http://www.veryide.com/ 
* 
* $Id: veryide.library.js,v2.3 17:29 2008-11-16 leilei $ 
*/ 
function $(obj){return document.getElementById(obj);} 
function $N(obj){return document.getElementsByName(obj);} 
function $T(obj){return document.getElementsByTagName(obj);} 
function $V(str){document.write(str);} 
//body load 
function addLoadEvent(func) { 
var oldonload = window.onload; 
if (typeof window.onload != 'function') { 
window.onload = func; 
} else { 
window.onload = function() { 
oldonload(); 
func(); 
} 
} 
} 
//object event 
function addObjectEvent(ele,evt,func){ 
var oldonevent = ele['on'+evt]; 
if (typeof ele['on'+evt] != 'function') { 
ele['on'+evt] = func; 
} else { 
ele['on'+evt] = function(event) { 
oldonevent(event); 
func(event); 
} 
} 
} 
//key event 
function addKeyEvent(key,func){ 
if(!VeryIDE.tmpKey){ 
VeryIDE.tmpKey=[]; 
} 
VeryIDE.tmpKey["k"+key]=func; 
} 
addKeyEvent.Listener=function(e,test){ 
var event=e||window.event; 
if(VeryIDE.tmpKey["k"+event.keyCode]){ 
VeryIDE.tmpKey["k"+event.keyCode](event); 
} 
if(test){ 
alert(event.keyCode); 
} 
} 
//onkeydown判断charCode/keyCode 
//获取对象 
function getObject(o){ 
if(typeof(o)!="object"){ 
var o=$(o); 
} 
return o; 
} 
/* 
String.prototype.trim = function(){ 
return this.replace(/(^\s+)|\s+$/g,""); 
} 
*/ 
String.prototype.Trim = function(){ 
return this.replace(/(^\s*)|(\s*$)/g, ""); 
} 
String.prototype.LTrim = function(){ 
return this.replace(/(^\s*)/g, ""); 
} 
String.prototype.Rtrim = function(){ 
return this.replace(/(\s*$)/g, ""); 
} 
//返回字符串字节数 
String.prototype.long = function(){ 
var i; 
var l = this.length; 
var len; 
len = 0; 
for (i=0;i<l;i++){ 
if (this.charCodeAt(i)>255) 
len+=2; 
else 
len++; 
} 
return len; 
} 
//检查在数组内是否存在某值 
function inArray(a,v) { 
var l = a.length; 
for(var i=0; i<=l; i++) { 
if(a[i]==v) return true; 
} 
return false; 
} 
//class为*的所有元素 
document.getElementsByClassName = function() { 
var children = document.getElementsByTagName('*') || document.all; 
var elements = new Array(); 
var len = children.length; 
for (var i = 0; i < len; i++) { 
var child = children[i]; 
var classNames = child.className.split(' '); 
for (var j = 0; j < classNames.length; j++) { 
for (var k = 0; k < arguments.length; k++) { 
if (classNames[j] == arguments[k]) { 
elements.push(child); 
break; 
} 
} 
} 
} 
return elements; 
} 
//ID以*开头的所有元素 
document.getElementsByPrefix = function(prefix) { 
var children = document.getElementsByTagName('*') || document.all; 
var elements = new Array(); 
var len = children.length; 
for (var i = 0; i < len; i++) { 
var child = children[i]; 
var eid = child.id; 
if(eid&&eid.indexOf(prefix)>-1) 
elements.push(child); 
} 
return elements; 
} 
/*查找页面Meta*/ 
function getMeta(name,att){ 
metatags = document.getElementsByTagName("meta"); 
for (cnt = 0; cnt < metatags.length; cnt++){ 
if(metatags[cnt].getAttribute("name")==name){ 
if(!att){ 
return metatags[cnt]; 
}else{ 
return metatags[cnt].getAttribute(att); 
} 
}else{ 
return null; 
} 
} 
} 
//加载新脚本 
function loadScript(src,target){ 
if(!target){ 
var root=$T("HEAD")[0]; 
}else{ 
var root=getObject(target); 
} 
var script=document.createElement("script"); 
script.type="text/javascript"; 
script.src=src; 
var code=arguments[2]; 
if(code){ 
script.charset=code; 
} 
root.appendChild(script); 
} 
//取得文件名 
function getFileName(url){ 
var strUrl=location.href; 
if(url){ 
strUrl=url; 
} 
var arrUrl=strUrl.split("/"); 
var strPage=arrUrl[arrUrl.length-1]; 
return strPage; 
} 
//对象绝对位置 
function getPosition(obj){ 
var obj=getObject(obj); 
this.width=obj.offsetWidth; 
this.height=obj.offsetHeight; 
this.top=obj.offsetTop; 
this.left=obj.offsetLeft; 
while(obj=obj.offsetParent){ 
this.top+=obj.offsetTop; 
this.left+=obj.offsetLeft; 
} 
} 
function getSelect(obj){ 
var obj=getObject(obj); 
this.value=""; 
this.text=""; 
this.index=""; 
if(obj.length>0){ 
this.value=obj[obj.selectedIndex].value; 
this.text=obj[obj.selectedIndex].text; 
this.index=obj.selectedIndex; 
} 
this.getAtt=function(att){ 
return obj[obj.selectedIndex].getAttribute(att); 
} 
} 
// 
function getRadio(obj){ 
var obj=$N(obj); 
var len = obj.length; 
this.value=""; 
for(var i=0;i<len;i++){ 
if(obj[i].checked==true){ 
this.value=obj[i].value; 
break; 
} 
} 
} 

//对象显示隐藏 
function showHide(obj){ 
var obj=getObject(obj); 
if(obj){ 
if(obj.offsetHeight==0||obj.style.display== "none") {obj.style.display = "block";}else{obj.style.display = "none";} 
} 
} 
function setCheckBox(obj,v){ 
var obj=$N(obj); 
if(obj[0]){ 
var len = obj.length; 
for(var i=0;i<len;i++){ 
if(obj[i].value==v){ 
obj[i].checked=true; 
}else{ 
obj[i].checked=false; 
} 
} 
}else{ 
obj=$(obj); 
if(obj.value==v){ 
obj.checked=true; 
}else{ 
obj[i].checked=false; 
} 
} 
} 
//选择列表项 
function setSelect(obj,v){ 
var obj=$(obj); 
var len = obj.length; 
for(var i=0;i<len;i++){ 
if(obj[i].value == v){ 
obj.selectedIndex=i; 
break; 
} 
} 
} 
//选择单选项 
function setRadio(o,v){ 
var obj=$N(o); 
var len = obj.length; 
for(var i=0;i<len;i++){ 
if(obj[i].value == v){ 
obj[i].checked=true; 
break; 
} 
} 
} 
//禁用对象 
function setDisabled(obj,b){ 
var obj=getObject(obj); 
if (obj){obj.disabled=b;} 
} 
function setClass(obj,Class,Type){ 
var obj=getObject(obj); 
if(obj){ 
switch(Type){ 
case "+": 
obj.className+=" "+Class; 
break; 
case "-": 
obj.className=obj.className.replace(Class,""); 
break; 
case "": 
obj.className=Class; 
break; 
} 
} 
} 
//新建连续下接列表项 
function newNumOption(obj,s,e,t){ 
var obj=getObject(obj); 
if(t=="new"){obj.length=0;} 
for(var i=s;i<(e+1);i++){ 
obj.options[obj.length] = new Option(i,i); 
} 
} 
//删除对象 
function delElement(obj){ 
var obj=getObject(obj); 
var p=obj.parentNode; 
p.removeChild(obj); 
} 
//确认操作 
function getConfirm(info){ 
if(!confirm(info)){return false} 
} 
//新窗口打开链接 
//rel="_blank" 
function _blank(){ 
var anchors = document.getElementsByTagName("A"); 
var len = anchors.length; 
for (var i=0; i<len; i++) { 
var anchor = anchors[i]; 
if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "_blank"){ 
anchor.target = "_blank"; 
} 
} 
} 
//获取URL参数 
function getQuery(n,url){ 
if(!url){ 
var url=location.href; 
} 
var v = ''; 
var o = url.indexOf(n+"="); 
if (o != -1){ 
o += n.length + 1 ; 
e = url.indexOf("&", o); 
if (e == -1){ 
e = url.length; 
} 
v = unescape(url.substring(o, e)); 
} 
//seo 
if(!v){ 
var o = url.indexOf(n+"-"); 
if (o != -1){ 
o += n.length + 1 ; 
e = url.indexOf("-", o); 
if (e == -1){ 
e = url.length; 
} 
v = unescape(url.substring(o, e)); 
} 
} 
return v; 
} 
//全角转半角 
function switchChar(str){ 
var str1="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
var str2="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
var len=str.length; 
for(var i=0; i<len; i++){ 
var n = str2.indexOf(str.charAt(i)); 
if(n != -1) str = str.replace(str.charAt(i), str1.charAt(n)); 
} 
return str; 
} 
/* 
获取随机字符 
*********** 
len 长度 
vUpper 是否大写字母 
vLower 是否小写字母 
vNum 是否数字 
*/ 
function getRnd(len,vUpper,vLower,vNum){ 
var seed_array=new Array(); 
var seedary; 
seed_array[0]="" 
seed_array[1]= "a b c d e f g h i j k l m n o p q r s t u v w x y z"; 
seed_array[2]= "a b c d e f g h i j k l m n o p q r s t u v w x y z"; 
seed_array[3]= "0 1 2 3 4 5 6 7 8 9"; 
if (!vUpper&&!vLower&&!vNum){vUpper=true;vLower=true;vNum=true;} 
if (vUpper){seed_array[0]+=seed_array[1];} 
if (vLower){seed_array[0]+=" "+seed_array[2];} 
if (vNum){seed_array[0]+=" "+seed_array[3];} 
seed_array[0]= seed_array[0].split(" "); 
seedary=""; 
for (var i=0;i<len;i++){ 
seedary+=seed_array[0][Math.round(Math.random()*(seed_array[0].length-1))] 
} 
return(seedary); 
} 

/* 
获取cookies 
name cookie名称 
sub 子cookie名称 
*/ 
function getCookie(name,sub){ 
var str=""; 
var arr = document.cookie.replace(/%25/g,"%").replace(/%5F/g,"_").match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); 
if(arr !=null){ 
try{ 
str=decodeURIComponent(arr[2]); 
}catch(e){ 
str=arr[2]; 
} 
} 
if(sub){ 
if(str){ 
var nSubValueBegin = str.indexOf(sub+"="); 
}else{ 
var nSubValueBegin =-1 
} 
if(nSubValueBegin != -1){ 
var nSubValueEnd = str.indexOf("&", nSubValueBegin); 
if(nSubValueEnd == -1) 
nSubValueEnd = str.length; 
var sSubValue = str.substring(nSubValueBegin + sub.length+1, nSubValueEnd);//获得指定的子键值 
str=sSubValue; 
}else{ 
str=""; 
} 
} 
return str; 
} 
function setCookie(key,value,iExpireDays,domain){ 
var cookies=key.replace("_","%5F") + "=" + encodeURIComponent(value)+ "; "; 
if (iExpireDays){ 
var dExpire = new Date(); 
dExpire.setTime(dExpire.getTime()+parseInt(iExpireDays*24*60*60*1000)); 
cookies += "expires=" + dExpire.toGMTString()+ "; "; 
} 
if(domain){ 
cookies += "domain="+domain+"; "; 
} 
cookies += "path=/;"; 
document.cookie = cookies; 
} 
/*state*/ 
VeryIDE.script["library"]=true;
Javascript 相关文章推荐
用js生产批量批处理执行命令
Jul 28 Javascript
jquery 表单进行客户端验证demo
Aug 24 Javascript
基于jQuery的弹出消息插件 DivAlert之旅(一)
Apr 01 Javascript
如何解决Jquery库及其他库之间的$命名冲突
Sep 15 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
May 18 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
Nov 28 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
Jan 16 Javascript
Javascript中数组去重与拍平的方法示例
Feb 03 Javascript
node.js操作MongoDB的实例详解
Oct 11 Javascript
学习Vue组件实例
Apr 28 Javascript
JavaScript一元正号运算符示例代码
Jun 30 Javascript
微信小程序实现电子签名功能
Jul 29 Javascript
兼容FireFox 的 js 日历 支持时间的获取
Mar 04 #Javascript
javascript radio 联动效果
Mar 04 #Javascript
js 页面执行时间计算代码
Mar 04 #Javascript
[推荐]javascript 面向对象技术基础教程
Mar 03 #Javascript
ajax 文件上传应用简单实现
Mar 03 #Javascript
escape、encodeURI 和 encodeURIComponent 的区别
Mar 02 #Javascript
javascript 文档的编码问题解决
Mar 01 #Javascript
You might like
php加密解密实用类分享
2014/01/07 PHP
php如何获取文件的扩展名
2015/10/28 PHP
非常实用的php验证码类
2016/05/15 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
python实现360的字符显示界面
2014/02/21 Python
Python实现全局变量的两个解决方法
2014/07/03 Python
Python中的tuple元组详细介绍
2015/02/02 Python
设计模式中的原型模式在Python程序中的应用示例
2016/03/02 Python
深入理解Python变量与常量
2016/06/02 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
python中wx模块的具体使用方法
2020/05/15 Python
python初步实现word2vec操作
2020/06/09 Python
新手学python应该下哪个版本
2020/06/11 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
JD Sports意大利:英国篮球和运动时尚的领导者
2017/10/29 全球购物
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
高中生学习总结的自我评价范文
2013/10/13 职场文书
大四学年自我鉴定
2013/11/13 职场文书
xxx同志考察材料
2014/02/07 职场文书
课前三分钟演讲稿
2014/04/24 职场文书
八项规定个人对照检查材料思想汇报
2014/09/25 职场文书
学校德育工作总结2015
2015/05/11 职场文书
创业计划书之干洗店
2019/09/10 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL
拙作再改《我的收音机情缘》
2022/04/05 无线电