小型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 相关文章推荐
Jquery中删除元素的实现代码
Dec 29 Javascript
javascript动态向网页中添加表格实现代码
Feb 19 Javascript
jQuery中position()方法用法实例
Jan 16 Javascript
详解javascript new的运行机制
Jan 26 Javascript
js判断鼠标位置是否在某个div中的方法
Feb 26 Javascript
Bootstrap的class样式小结
Dec 01 Javascript
简单实现js浮动框
Dec 13 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
Apr 13 Javascript
JS实现的缓冲运动效果示例
Apr 30 Javascript
详解使用jest对vue项目进行单元测试
Sep 07 Javascript
Vue匿名插槽与作用域插槽的合并和覆盖行为
Apr 22 Javascript
layui 弹出删除确认界面的实例
Sep 06 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
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
php 什么是PEAR?
2009/03/19 PHP
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
2015/12/22 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
php框架知识点的整理和补充
2021/03/01 PHP
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
textarea 控制输入字符字节数(示例代码)
2013/12/27 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
可能被忽略的一些JavaScript数组方法细节
2019/02/28 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
跟老齐学Python之折腾一下目录
2014/10/24 Python
在Python中定义和使用抽象类的方法
2016/06/30 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
用Python将Excel数据导入到SQL Server的例子
2019/08/24 Python
如何定义TensorFlow输入节点
2020/01/23 Python
Python定义函数实现累计求和操作
2020/05/03 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
网络信息管理员岗位职责
2014/01/05 职场文书
勤俭节约倡议书
2014/04/14 职场文书
2015年超市员工工作总结
2015/05/04 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python