一些常用的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 相关文章推荐
对联广告js flash激活
Oct 19 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
Oct 09 Javascript
JS运动框架之分享侧边栏动画实例
Mar 03 Javascript
再谈JavaScript线程
Jul 10 Javascript
jquery特效 点击展示与隐藏全文
Dec 09 Javascript
Bootstrap布局组件应用实例讲解
Feb 17 Javascript
jquery根据一个值来选中select下的option实例代码
Aug 29 Javascript
jQuery实现6位数字密码输入框
Dec 29 Javascript
js实现定时进度条完成后切换图片
Jan 04 Javascript
JS图片预加载三种实现方法解析
May 08 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
Sep 21 Javascript
带你彻底理解JavaScript中的原型对象
Apr 14 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 图片水印类代码
2012/08/27 PHP
关于Sphinx创建全文检索的索引介绍
2013/06/25 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
PHP引用的调用方法分析
2016/04/25 PHP
区分JS中的undefined,null,&quot;&quot;,0和false
2007/03/08 Javascript
JavaScript 常用函数库详解
2009/10/21 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
微信小程序商品详情页的底部弹出框效果
2020/11/16 Javascript
vue自定义filters过滤器
2018/04/26 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
Python实现测试磁盘性能的方法
2015/03/12 Python
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
用virtualenv建立多个Python独立虚拟开发环境
2017/07/06 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
Python字符串逆序输出的实例讲解
2019/02/16 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
html5绘制时钟动画
2014/12/15 HTML / CSS
HEMA法国:荷兰原创设计
2019/02/21 全球购物
大学自荐信
2013/12/12 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang