一些常用的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 Firefox3.5中操作select的问题
Jul 10 Javascript
基于Jquery的温度计动画效果
Jun 18 Javascript
jquery实现商品拖动选择效果代码(自写)
May 28 Javascript
JS使用eval()动态创建变量的方法
Jun 03 Javascript
很棒的Bootstrap选项卡切换效果
Jul 01 Javascript
json与jsonp知识小结(推荐)
Aug 16 Javascript
初识简单却不失优雅的Vue.js
Sep 12 Javascript
Angular.Js中ng-include指令的使用与实现
May 07 Javascript
JS原生数据双向绑定实现代码
Aug 14 Javascript
JS实现div模块的截图并下载功能
Oct 17 Javascript
解决Linux无法正常安装与卸载Node.js的方法
Jan 19 Javascript
Vue是怎么渲染template内的标签内容的
Jun 05 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下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
网站用php实现paypal整合方法
2010/11/28 PHP
Php图像处理类代码分享
2012/01/19 PHP
php调用c接口无错版介绍
2014/03/11 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
mouse_on_title.js
2006/08/25 Javascript
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
理解JavaScript中Promise的使用
2016/01/18 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
Python实现把utf-8格式的文件转换成gbk格式的文件
2015/01/22 Python
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
python字典基本操作实例分析
2015/07/11 Python
详解Python中类的定义与使用
2017/04/11 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
解析Python3中的Import
2019/10/13 Python
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
优秀共产党员先进事迹
2014/01/27 职场文书
优秀幼教自荐信
2014/02/03 职场文书
大学活动总结格式
2014/04/29 职场文书
党代会心得体会
2014/09/04 职场文书
使用 JavaScript 制作页面效果
2021/04/21 Javascript
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle
Mysql文件存储图文详解
2021/06/01 MySQL
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android