一些常用的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 $.ajax入门应用一
Nov 19 Javascript
JavaScript 检测浏览器和操作系统的脚本
Dec 26 Javascript
页面中iframe相互传值传参
Dec 13 Javascript
css配合jquery美化 select
Nov 29 Javascript
Vue.js实现简单动态数据处理
Feb 13 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
Feb 21 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
May 22 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
Jul 19 Javascript
详解React native fetch遇到的坑
Aug 30 Javascript
JS实现扫码枪扫描二维码功能
Jan 03 Javascript
jQuery实现王者荣耀手风琴效果
Jan 17 jQuery
JS Canvas接口和动画效果大全
Apr 29 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
ThinkPHP中关联查询实例
2014/12/02 PHP
PHP.vs.JAVA
2016/04/29 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
js利用Array.splice实现Array的insert/remove
2009/01/13 Javascript
WordPress JQuery处理沙发头像
2009/06/22 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
Jquery 的outerHeight方法使用介绍
2013/09/11 Javascript
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
浅谈angularJS 作用域
2015/07/05 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
Vue.js实现简单动态数据处理
2017/02/13 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
2019/06/26 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
vue实现防抖的实例代码
2021/01/11 Vue.js
[03:56]还原FTP电影首映式 DOTA2群星拼出遗迹世界
2014/03/26 DOTA
Python入门篇之列表和元组
2014/10/17 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
python消除序列的重复值并保持顺序不变的实例
2018/11/08 Python
python网络应用开发知识点浅析
2019/05/28 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
python的setattr函数实例用法
2020/12/16 Python
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
个人评语大全
2014/05/04 职场文书
学用政策心得体会
2014/09/10 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL