一些常用的JS功能函数代码


Posted in Javascript onJune 23, 2009
//获取对象 
function getObject(objectId,top) 
{ 
doc = top?window.top.document:document; 
if(typeof(objectId)!="object" && typeof(objectId)!="function") 
{ 
if(doc.getElementById && doc.getElementById(objectId)) 
{ 
// W3C DOM 
return doc.getElementById(objectId); 
} 
else if(doc.getElementsByName(objectId)) 
{ 
return doc.getElementsByName(objectId)[0]; 
} 
else if (doc.all && doc.all(objectId)) 
{ 
// MSIE 4 DOM 
return doc.all(objectId); 
} 
else if (doc.layers && doc.layers[objectId]) 
{ 
// NN 4 DOM.. note: this won't find nested layers 
return doc.layers[objectId]; 
} 
else 
{ 
return false; 
} 
}else 
return objectId; 
} 
//获取相对路径 
function getRelativePath() 
{ 
var url = location.href;//当前url 
var urlcs = String(location.search); 
url = url.replace(urlcs,""); 
var path = url.length - url.replace(/\//g,"").length - 3; //层次为url包含/的长度-没有包含/的长度再减去项目头/的个数 var str = ""; 
for(var i = 0; i < path; i++) 
{ 
str += "../";//组合成一个相对路径的字符串返回 
} 
return str; 
} 
//加载其他JS文件或CSS文件 
function loadjscssfile(filename,filetype,chkonce) 
{ 
filetype = !filetype?"js":filetype; 
var had = false; 
if(filetype=="js") 
{ 
if(chkonce) 
{ 
var allScripts = document.getElementsByTagName("script"); 
for(var i=0;i<allScripts.length;i++) 
{ 
try{ 
if(allScripts[i].src.indexOf(filename)>-1) 
{ 
had = true; 
break; 
} 
}catch(e){} 
} 
} 
if(!had) 
{ 
document.write("<script src=""+filename+"" src=""+filename+"" type='text/javascript'></script>"); 
} 
}else 
{ 
if(chkonce) 
{ 
var allCss = document.getElementsByTagName("link"); 
if(allCss.length) 
{ 
for(var i=0;i<allCss.length;i++) 
{ 
try{ 
if(allCss[i].href.indexOf(filename)>-1) 
{ 
had = true; 
break; 
} 
}catch(e){} 
} 
} 
} 
if(!had) 
{ 
document.write("<link type='text/css' rel='stylesheet' href=""+filename+"" href=""+filename+"" />"); 
} 
} 
} 
//定义根目录路径 
var ROOT_PATH = getRelativePath(); 
var JS_PATH = ROOT_PATH+'js/'; 
var AJAX_PATH = ROOT_PATH+'ajax/'; 
var CSS_PATH = ROOT_PATH+'css/'; 
var IMAGES_PATH = ROOT_PATH+'images/'; 
var EDITOR_PATH = ROOT_PATH+'uploadeditor/'; 
var PUB_PATH = ROOT_PATH+'uploadfile/'; 
//加载公共变量的JS 
loadjscssfile(JS_PATH+"globalPara.js"); 
//设置下拉表中某一项被选中 
function setSelOption(objId,vlu) 
{ 
objId = getObject(objId); 
for(var i=0;i<objId.options.length;i++) 
{ 
if(objId.options[i].value==vlu) 
{ 
objId.options[i].setAttribute("selected","selected"); 
break; 
} 
} 
} 
//根据下拉表中的option文本设置某一项被选中 
function setTxtOption(objId,txt) 
{ 
objId = getObject(objId); 
for(var i=0;i<objId.options.length;i++) 
{ 
if(objId.options[i].innerHTML==txt) 
{ 
objId.options[i].setAttribute("selected","selected"); 
break; 
} 
} 
} 
//设置单选按钮组中某一项被选中 
function setSelRadio(objName,vlu) 
{ 
objName = document.getElementsByName(objName); 
for(var i=0;i<objName.length;i++) 
{ 
if(objName[i].value==vlu) 
{ 
objName[i].setAttribute("checked","checked"); 
break; 
} 
} 
} 
//根据ID设置复选框中某些项被选中 
//vlu 的格式为 : 1,2,3 
function setSelCheckbox(prefix,vlu) 
{ 
var _arr = vlu.split(","); 
if(_arr!="") 
{ 
for(var i=0; i<_arr.length; i++) 
{ 
getObject(prefix+_arr[i]).checked = true; 
} 
} 
} 
//快捷输入,fromObj:来源对象,toObjId:目标对象的ID,txt为true时取toObjId的innerHTML值 
function fastInput(fromObj,toObjId,txt) 
{ 
if(fromObj.value=='' || fromObj.value==0) return false; 
txt = !txt ? false : txt; 
var toObj = getObject(toObjId); 
if(txt) 
{ 
if(typeof (toObj.value) == 'undefined') 
toObj.innerHTML = toTxt(fromObj.options[fromObj.selectedIndex].innerHTML); 
else 
toObj.value = toTxt(fromObj.options[fromObj.selectedIndex].innerHTML); 
}else 
{ 
if(typeof (toObj.value) == 'undefined') 
toObj.innerHTML = fromObj.value; 
else 
toObj.value = fromObj.value; 
} 
} 
/* 
IE6,IE7上传图片前预览图片 
IE6下还可以同时检测图片的大小 
size 单位为KB 
<style type="text/css"><!-- 
.newPreview 
{ 
width:400px; height:300px; 
FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale) 
} 
.nodis{display:none;} 
--></style><style type="text/css" bogus="1"> 
.newPreview 
{ 
width:400px; height:300px; 
FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale) 
} 
.nodis{display:none;}</style> 
<input type="file" name="litpic" onchange="PreviewImg(this,'newPreview','ndsPreview',400)" /> 
<div id="newPreview" class="newPreview"></div> 
<img id="ndsPreview" class="nodis" /> 
*/ 
function PreviewImg(imgFile,newPreview,ndsPreview,size) 
{ 
newPreview = getObject(newPreview); 
if(!imgFile || !imgFile.value || !newPreview){return}; 
var patn = /\.jpg$|\.jpeg$|\.gif$|\.png$|\.bmp$/i; 
if(patn.test(imgFile.value)) 
{ 
try{newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;}catch(e){} 
if(navigator.appVersion.indexOf("MSIE 6.0",0)>-1) 
{ 
size=!size?0:size; 
ndsPreview = getObject(ndsPreview); 
if(ndsPreview) 
{ 
try{ndsPreview.attachEvent("onreadystatechange", function(){checkImgSize(ndsPreview,size)})}catch(e){} 
ndsPreview.src = imgFile.value; 
} 
} 
} 
else 
{ 
alert("您选择的不是图像文件,请重新选择."); 
} 
} 
function PreviewImgNow(imgDiv,imgFile) 
{ 
try{getObject(imgDiv).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile}catch(e){} 
} 
//上传之前检测图片的大小 
//条件是在file改变时要触发函数将缩略图显示在img上 
//size 单位为KB 
function checkImgSize(img,size) 
{ 
img = getObject(img); 
if(img.readyState == "complete") 
{ 
var limit = size * 1024; 
if(img.fileSize > limit) 
{ 
alert("出错!您上传的图片大小为"+(parseInt(img.fileSize/1024))+"KB,超过了"+size+"KB的限制,请重新上传"); 
return false 
}else 
return true; 
} 
return true; 
} 
//检测客户端环境 
function ClientMentInfo() 
{ 
var me = this; 
var appVer = navigator.userAgent; 
this.GetBrowserName = function (){ 
if(appVer.indexOf("MSIE")>0) return "IE"; 
else if(appVer.indexOf("Firefox")>0) return "Firefox"; 
else if(appVer.indexOf("Chrome")>0) return "Chrome"; 
else if(appVer.indexOf("Safari")>0) return "Safari"; 
else if(appVer.indexOf("Camino")>0) return "Camino"; 
else if(appVer.indexOf("Konqueror")>0) return "Konqueror"; 
else return "其它"; 
} 
this.GetOSInfo = function (){ 
var _pf = navigator.platform; 
if(_pf == "Win32" || _pf == "Windows") 
{ 
if(appVer.indexOf("Windows NT 6.0") > -1 || appVer.indexOf("Windows Vista") > -1) 
{ 
return 'Windows Vista'; 
}else if(appVer.indexOf("Windows NT 6.1") > -1 || appVer.indexOf("Windows 7") > -1) 
{ 
return 'Windows 7'; 
}else 
{ 
try{ 
var _winName = Array('2000','XP','2003'); 
var _ntNum = appVer.match(/Windows NT 5.\d/i).toString(); 
return 'Windows ' + _winName[_ntNum.replace(/Windows NT 5.(\d)/i,"$1")]; 
}catch(e){return 'Windows';} 
} 
}else if(_pf == "Mac68K" || _pf == "MacPPC" || _pf == "Macintosh") 
{ 
return "Mac"; 
}else if(_pf == "X11") 
{ 
return "Unix"; 
}else if(String(_pf).indexOf("Linux") > -1) 
{ 
return "Linux"; 
}else 
{ 
return "Unknow"; 
} 
} 
this.OS = me.GetOSInfo(); //操作系统类型 
this.IeVer = null; 
this.Bs_lang = (navigator.appName == 'Netscape'?navigator.language:navigator.browserLanguage);//浏览器语言版本 
this.Bs_Name = me.GetBrowserName(); //浏览器名称 
//浏览器版本 
if(this.Bs_Name=='IE') 
{ 
var _msie = appVer.match(/MSIE \d./i).toString(); 
this.Bs_Version = this.IeVer = _msie.replace(/MSIE (\d)./i,"$1"); 
}else 
{ 
this.Bs_Version = appVer; 
} 
this.Ie6 = this.IeVer==6 ? true: false; 
this.Ie7 = this.IeVer==7 ? true: false; 
this.Ie8 = this.IeVer==8 ? true: false; 
} 
//客户端信息 
var CMInfo = new ClientMentInfo(); 
//IE6 下缓存背景图片 
if(CMInfo.Ie6) 
{ 
document.execCommand("BackgroundImageCache", false, true); 
} 
//设置复选框全选或全不选 
function setAllCheckbox(formName,objName,num) 
{ 
if(formName) 
_arr = getObject(formName).elements[objName]; 
else 
_arr = typeof(objName)=="object"?objName:document.all(objName); 
if(_arr) 
{ 
if(num) 
{ 
if (!_arr.length ) // 只有一个复选框,则length = undefined 
_arr.checked = true; 
else 
{ 
for(var i=0; i<_arr.length; i++) 
{ 
_arr[i].checked = true; 
} 
} 
}else 
{ 
if (!_arr.length ) // 只有一个复选框,则length = undefined 
_arr.checked = false; 
else 
{ 
for(var i=0; i<_arr.length; i++) 
{ 
_arr[i].checked = false; 
} 
} 
} 
} 
} 
//使当前页面跳到指定的页数页面 
function goPage(pageNum,pageStr) 
{ 
window.location.href = "?np="+pageNum+pageStr; 
} 
//分别去字符串前后,左边,右边空格 
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,"")} 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/linyuanxing/archive/2008/12/01/3421058.aspx

注意globalPara.js本作者常用到的一些每个站自己的常用变量和常量的文件,如果你不需要这样的文件,可把
//加载公共变量的JS
loadjscssfile(JS_PATH+"globalPara.js");
这两句删掉,不然会报错。
(2009-06-04更新)
将 ClientMentInfo类改成了兼容IE6,IE7,IE8,Vista,Windows 7和Firefox
Javascript 相关文章推荐
javascript Base类 包含基本的方法
Jul 22 Javascript
js 页面刷新location.reload和location.replace的区别小结
Dec 24 Javascript
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
May 18 Javascript
jquery默认校验规则整理
Mar 24 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
May 13 Javascript
jQuery的缓存机制浅析
Jun 07 Javascript
Lua表达式和控制结构学习笔记
Dec 15 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
Sep 13 Javascript
在Mac下彻底卸载node和npm的方法
May 16 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
Sep 26 Javascript
vue实现购物车小案例
Sep 27 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
Sep 28 Javascript
JQuery 无废话系列教程(二) jquery实战篇上
Jun 23 #Javascript
JQuery 无废话系列教程(一) jquery入门 [推荐]
Jun 23 #Javascript
IE JS编程需注意的内存释放问题
Jun 23 #Javascript
js form 验证函数 当前比较流行的错误提示
Jun 23 #Javascript
javascript form 验证函数 弹出对话框形式
Jun 23 #Javascript
WordPress 照片lightbox效果的运用几点
Jun 22 #Javascript
WordPress JQuery处理沙发头像
Jun 22 #Javascript
You might like
中国第一家无线电行
2021/03/01 无线电
php你的验证码安全码?
2007/01/02 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
PHP attributes()函数讲解
2019/02/03 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
JS原型链怎么理解
2016/06/27 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
微信小程序中如何计算距离某个节日还有多少天
2019/07/15 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
详解Django中的form库的使用
2015/07/18 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
解决Django加载静态资源失败的问题
2019/07/28 Python
python super函数使用方法详解
2020/02/14 Python
Python 连接 MySQL 的几种方法
2020/09/09 Python
Html5定位终极解决方案
2020/02/05 HTML / CSS
银河香水:Galaxy Perfume
2019/03/25 全球购物
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
医药营销个人求职信范文
2014/02/07 职场文书
企业后勤岗位职责
2014/02/28 职场文书
中等生评语大全
2014/05/04 职场文书
依法行政工作汇报材料
2014/10/28 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
安全学习心得体会范文
2016/01/18 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL