小型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 相关文章推荐
javascript 检测浏览器类型和版本的代码
Sep 15 Javascript
用JQUERY增删元素的代码
Feb 14 Javascript
jQuery对象和Javascript对象之间转换的实例代码
Mar 20 Javascript
JQuery实现动态表格点击按钮表格增加一行
Aug 24 Javascript
js生成的验证码的实现与技术分析
Sep 17 Javascript
Javascript限制网页只能在微信内置浏览器中访问
Nov 09 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
Sep 05 Javascript
Vue.js鼠标悬浮更换图片功能
May 17 Javascript
webpack学习--webpack经典7分钟入门教程
Jun 28 Javascript
JS鼠标滚动分页效果示例
Jul 05 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
Oct 14 Javascript
vuex的使用和简易实现
Jan 07 Vue.js
兼容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与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
List Installed Hot Fixes
2007/06/12 Javascript
JQuery与iframe交互实现代码
2009/12/24 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
vue中的inject学习教程
2019/04/24 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
前端深入理解Typescript泛型概念
2020/03/09 Javascript
js实现简单进度条效果
2020/03/25 Javascript
Python+Opencv识别两张相似图片
2020/03/23 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
2016/10/09 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
2018/07/18 Python
python使用folium库绘制地图点击框
2018/09/21 Python
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
易程科技软件测试笔试
2013/03/24 面试题
实习护理工作自我评价
2013/09/25 职场文书
毕业自荐书
2013/12/09 职场文书
房屋继承公证书
2014/04/10 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
工厂标语大全
2014/10/06 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
详解CSS中的特指度和层叠问题
2021/07/15 HTML / CSS