一些常用的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 相关文章推荐
jQuery 工具函数学习资料
Apr 29 Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
JSON格式的键盘编码对照表
Jan 29 Javascript
JS实现模拟风力的雪花飘落效果
May 13 Javascript
JavaScript之AOP编程实例
Jul 17 Javascript
浅谈如何实现easyui的datebox格式化
Jun 12 Javascript
jquery siblings获取同辈元素用法实例分析
Jul 25 Javascript
javascript创建对象的3种方法
Nov 02 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
Dec 17 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
Feb 27 Javascript
Django模板继承 extend标签实例代码详解
May 16 Javascript
vuex存储token示例
Nov 11 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
PHP file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
PHP开发中常用的字符串操作函数
2011/02/08 PHP
php object转数组示例
2014/01/15 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
ASP Json Parser修正版
2009/12/06 Javascript
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
Vue 2.0 侦听器 watch属性代码详解
2019/06/19 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
简单的Python抓taobao图片爬虫
2014/10/26 Python
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
python如何实现远程控制电脑(结合微信)
2015/12/21 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
20个常用Python运维库和模块
2018/02/12 Python
flask入门之表单的实现
2018/07/18 Python
python实现自动解数独小程序
2019/01/21 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
python config文件的读写操作示例
2019/09/27 Python
公司出纳岗位职责
2013/12/07 职场文书
班会关于环保演讲稿
2013/12/29 职场文书
歌唱比赛获奖感言
2014/01/21 职场文书
酒后驾驶检讨书
2014/01/27 职场文书
医院护士见习期自我鉴定
2014/04/10 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
个人股份转让协议书范本
2014/10/26 职场文书
2015年公司新年寄语
2014/12/08 职场文书
怎样写离婚协议书
2015/01/26 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
会议主持词通用版
2019/04/02 职场文书
python中subplot大小的设置步骤
2021/06/28 Python
VUE之图片Base64编码使用ElementUI组件上传
2022/04/09 Vue.js