//获取对象
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 {
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{
try{
if(allscripts[i].src.indexof(filename)>-1)
{
had = true;
break;
}
}catch(e){}
}
}
if(!had)
{
document.write();
}
}else
{
if(chkonce)
{
var allcss = document.getelementsbytagname(link);
if(allcss.length)
{
for(var i=0;i{
try{
if(allcss[i].href.indexof(filename)>-1)
{
had = true;
break;
}
}catch(e){}
}
}
}
if(!had)
{
document.write();
}
}
}
//定义根目录路径
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{
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{
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{
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{
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
*/
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[i].checked = true;
}
}
}else
{
if (!_arr.length ) // 只有一个复选框,则length = undefined
_arr.checked = false;
else
{
for(var i=0; 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
