常用js脚本----自己整理的

 自己整理的常用js脚本

//  JavaScript Document
//
==============================================================================
/*                Ajax 公用错误回调函数,可以定义错误时的事件
    建档时间:2007-4-30
    最后修改时间:2007-4-30
    作者:ison
    说明:
        在mynormalAjax(url,pars,div)函数中的onFailure事件和onSuccess事件中调用
        也可以自行调用
    建议:
        以下函数一般不要作任何修改
*/
// ============================================================================
function  reportError(request) {
    alert(
'很抱歉,不能读取数据,请稍后再试!');
    setStatusBar(
"数据库连接失败...");
}

function  reportSuccess(request) {
    setStatusBar(
"数据更新成功~");
}

// ==============================================================================
/*                Ajax  公用调用函数,一般情况下都可以使用
    建档时间:2007-4-30
    最后修改时间:2007-4-30
    作者:ison
    说明:
        进行异步读取数据使用。只要传入3个参数即可
        url为数据来源的网页地址
        pars为需要传递的参数组成的字符串,格式和url地址栏参数一样
        (参数必须使用Ajaxaddpars_XXXX系列函数进行组合)
        div为DOM元素的id,用于装载返回数据的容器
    建议:
        以下函数一般不要作任何修改
*/
// ============================================================================
function  mynormalAjax(url,pars,div) {
    setStatusBar(
"正在连接数据库......");
    
var myAjax = new Ajax.Updater(
                        
{success: div},
                        url,
                        
{
                            method: 
'post',
                            parameters: pars,
                            evalScripts: 
true,
                            onFailure: reportError,
                            onSuccess: reportSuccess
                        }

                    );
    
return false;
}

// ==============================================================================
/*                 Ajax 添加参数专用 根据不同类型的对象取得相应的值
    建档时间:2007-5-5
    作者:ison
    说明:
        组合Ajax需要传递的参数时使用。目的是对参数进行转化,变成URLCODE
        另外,对参数中的特殊字符进行过滤,防止恶意代码
    建议:
        以下函数一般不要作任何修改
*/
// ============================================================================
//
自动根据不同类型的对象取得相应的值(需要传入formname)
function  ajaxaddpars_formInput(formname,argname,pars,target_id) {
    
var target_obj = $(target_id);
    
if(target_obj){
        
var inputType = target_obj.type;
        
if(inputType){
            
switch(inputType){
                
case "text":
                    pars 
= ajaxaddpars_formtext(argname,pars,target_id);
                    
break;
                
case "select":
                    pars 
= ajaxaddpars_formselect(argname,pars,target_id);
                    
break;
                
case "checkbox":
                    pars 
= ajaxaddpars_formcheckbox(argname,pars,target_id);
                    
break;
                
case "radio":
                    
var targetname = target_obj.name;
                    pars 
= ajaxaddpars_formradio(formname,argname,pars,targetname);
                    
break;
                
default:
                    pars 
= ajaxaddpars_formtext(argname,pars,target_id);
                    
break;
            }

        }
else{
            pars 
= ajaxaddpars_formtext(argname,pars,target_id);
        }

    }

    
return pars;
}


// --------------------------------------------------------------------------
//
添加文本框(text/textarea)
function  ajaxaddpars_formtext(argname,pars,target_id) {
    
if($(target_id)){
        
if(pars!="") pars += "&";
        pars 
+= argname + "=" + mycommonfilt(encodeURI($F(target_id)));
    }

    
return pars;
}


// 添加下拉菜单(select)(支持多选)
function  ajaxaddpars_formselect(argname,pars,target_id) {
    
var target_obj = $(target_id);
    
if(target_obj){
        
for(var i = 0; i < target_obj.options.length; i++){
            
if(target_obj.options[i].selected){
                
if(pars!="") pars += "&";
                pars 
+= argname + "=" + mycommonfilt(encodeURI(target_obj.options[i].value));
            }

        }

    }

    
return pars;
}


// 添加多选框(checkbox)
function  ajaxaddpars_formcheckbox(argname,pars,target_id) {
    
if($(target_id) && $(target_id).checked){
        
if(pars!="") pars += "&";
        pars 
+= argname + "=" + mycommonfilt(encodeURI($F(target_id)));
    }

    
return pars;
}


// 添加单选框(radio)(必须传入form name)
function  ajaxaddpars_formradio(formname,argname,pars,target_name) {
    
var form_obj = $(formname);
    
if(form_obj){
        
for(var i = 0; i < form_obj.elements.length; i++){
            
if(form_obj.elements[i].name == target_name &&     form_obj.elements[i].checked){
                
if(pars!="") pars += "&";
                pars 
+= argname + "=" + mycommonfilt(encodeURI(form_obj.elements[i].value));
                
break;    //找到一个后退出循环
            }

        }

    }

    
return pars;
}

// --------------------------------------------------------------------------
//
添加脚本变量的值
function  ajaxaddpars_var(argname,pars,var_value) {
    
if(var_value!=null && var_value!=""){
        
if(pars!="") pars += "&";
        pars 
+= argname + "=" + mycommonfilt(encodeURI(var_value));
    }

    
return pars;
}


// 添加其他标签(div/span ...)
function  ajaxaddpars_innerHTML(argname,pars,target_id) {
    
if($(target_id)){
        
if(pars!="") pars += "&";
        pars 
+= argname + "=" + mycommonfilt(encodeURI($(target_id).innerHTML));
    }

    
return pars;
}


// 通用过滤函数
function  mycommonfilt(str) {
    str 
= str.replace(/?/g,"%3f");
    str 
= str.replace(/&/g,"%26");
    str 
= str.replace(/#/g,"%23");
    str 
= str.replace(/=/g,"%3d");

    
//    str = str.replace(/</g,"<");
    //    str = str.replace(/>/g,">");
    return str;
}

// ===============================================================================================
//
 ajax 添加参数专用 end
//
===============================================================================================

 

//  JavaScript Document
//
==============================================================================
/*            通用校验脚本
    建档时间:2007-4-30
    最后修改时间:2007-4-30
    作者:ison
    说明:(校验相关的都有check_前缀)
        check_isnum 检查是否为数字
            第一个参数是要检验的字符
            第二个参数为错误信息的DOM容器(可选),如果没有,则使用弹出提示
    建议:
        以下函数一般不要作任何修改
*/
// ============================================================================
     function  check_isnum(i,mess_spanid) {
        
var errorflag = (i=="" || isNaN(i)==true);
        
if(errorflag){
            
if(mess_spanid!=null && $(mess_spanid)){
                $(mess_spanid).innerHTML 
= "请输入数字";
            }
else{
                alert(
"请输入数字");
            }

        }

        
return !errorflag;
    }

 

//  JavaScript Document
function  fvoid() {} // 通用空脚本(例:<a href="javascript:fvoid();" οnclick="">保存</a>)
//
==============================================================================
/*                仿造prototype.js的$()函数(兼容firfox)
    建档时间:2007-4-24
    最后修改时间:2007-4-24
    作者:ison
    说明:
        1.$()函数根据ID返回相同ID的第一个元素;
        2.$F()函数根据ID返回相同ID的第一个元素的值(尚在完善中);
            $F()加入第二个参数,用于设置该元素的新值
    建议:
        1.在同一页内所有元素ID必须唯一,否则不能准确取值;

*/
// ============================================================================
/*function $(id){
    return document.getElementById(id);
}
function $F(id,newvalue){
    var obj = $(id);
    if(obj){
        if(obj.type){
            switch(obj.type){
                case "select":
                    if(newvalue!=null){
                        obj.value = newvalue;
                    }else{
                        return obj.value;
                    }
                    break;
                case "checkbox":
                    if(newvalue!=null){
                        obj.value = newvalue;
                    }else{
                        return obj.value;
                    }
                    break;
                case "radio":
                    if(newvalue!=null){
                        obj.value = newvalue;
                    }else{
                        return obj.value;
                    }
                    break;
                default:
                    if(newvalue!=null){
                        obj.value = newvalue;
                    }else{
                        return obj.value;
                    }
                    break;
            }
        }else if(obj.value){
            if(newvalue!=null){
                obj.value = newvalue;
            }else{
                return obj.value;
            }
        }else if(obj.innerHTML){
            if(newvalue!=null){
                obj.innerHTML = newvalue;
            }else{
                return obj.innerHTML;
            }
        }
    }
    return null;    
}
*/

// ==============================================================================
/*                修改状态栏内容
    建档时间:2007-4-30
    最后修改时间:2007-4-30
    作者:ison
    说明:直接传入要显示的内容
    注意:firefox下默认不支持修改状态栏信息,需要打开firefox的安全设置
*/
// ============================================================================
function  setStatusBar(msgStr)  { window.status = msgStr; }

// ==============================================================================
/*                修改下拉菜单选项通用函数
    建档时间:2007-4-30
    最后修改时间:2007-4-30
    作者:ison
    说明:
        1.select_reset_option(obj)        清除指定select对象的所有options
        1.select_add_option(obj)         向指定select对象中添加一个option
        1.select_setselected(obj,idx)    设置指定select对象的选择项,传入要选择的项的索引
*/
// ============================================================================
function  select_add_option(obj,name,val) {
    obj.options[obj.options.length] 
= new Option(name,val);
}

function  select_reset_option(obj) {
    obj.options.length 
= 0;
}

function  select_setselected(obj,idx) {
    obj.selectedIndex 
= idx;
}

// ==============================================================================
/*                通用Flash显示脚本(兼容firfox)
    建档时间:2007-4-27
    最后修改时间:2007-4-27
    作者:ison
    注意事项:
        1.显示的Flash是透明底;
        2.pars--用来传参数到Flash中,如果没有参数,页面调用可以忽略不传,前3个参数必填
*/
// ==============================================================================
function  Display_flash(width,height,url,pars) {
    document.write(
'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"');
    document.write(
' width="'+width+'" height="'+height+'">');
    document.write(
'<param name="movie" value="'+url+'" />');
    document.write(
'<param name="quality" value="high" />');
    document.write(
'<param name="wmode" value="transparent" />');
    
if(pars!=""){
        document.write(
'<param name="FlashVars" value="'+pars+'" />');
    }

    document.write(
'<embed src="'+url+'" quality="high" wmode="transparent" FlashVars="'+pars+'"  pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"');
    document.write(
' width="'+width+'" height="'+height+'"></embed>');
    document.write(
'</object>');
    
return;
}


// ==============================================================================
/*                key转换
    建档时间:2007-4-27
    最后修改时间:2007-4-27
    作者:ison
    注意事项:
        1.回车变Tab(不能输入空格的)
        2.用于连续输入框中自动焦点
*/
// ==============================================================================
function  onKeyEntToTab9(event) {
    
if (event.keyCode==32){
        event.returnValue 
= false;
    }
else if(event.keyCode==13){
        event.keyCode
=9;
    }

}

// ==============================================================================
/*                 改变图片的尺寸 还原本来尺寸
    建档时间:2007-5-5
    最后修改时间:2007-5-5
    作者:ison
    注意事项:
        1.传入一个图片对象
*/
// ==============================================================================
function  changeimg_reset(R_img)  {
     
var zeimage = new Image();
     zeimage.src 
= R_img.src;
     
if(zeimage.width > 0 && zeimage.height > 0){
        R_img.width 
= zeimage.width;
        R_img.height 
= zeimage.height;
    }

}


// ==============================================================================
/*                 改变图片的尺寸 自动缩放
    建档时间:2007-5-5
    最后修改时间:2007-5-5
    作者:ison
    注意事项:
        1.传入一个图片对象,传入需要的尺寸
*/
// ==============================================================================
function  changeimg_wh(R_img,iwidth,iheight)  {
     
var zeimage = new Image();
     zeimage.src 
= R_img.src;
     
if(zeimage.width > 0 && zeimage.height > 0){
        
if(zeimage.width/zeimage.height >= iwidth/iheight){  //横向摆放
            R_img.width = iwidth;
            R_img.height 
= (zeimage.height*iwidth)/zeimage.width;
        }
else//纵向摆放
            R_img.height = iheight;
            R_img.width 
= (zeimage.width*iheight)/zeimage.height;
        }

    }

}


// ==============================================================================
/*                 改变图片的尺寸 限制最大值
    建档时间:2007-5-5
    最后修改时间:2007-5-5
    作者:ison
    注意事项:
        1.传入一个图片对象,传入限制的最大尺寸
*/
// ==============================================================================
function  changeimg_Maxlimit(R_img,iwidth,iheight)  {
    
var zeimage = new Image();
    zeimage.src 
= R_img.src;
    
if(zeimage.width > iwidth || zeimage.height > iheight){
        
if(zeimage.width/zeimage.height >= iwidth/iheight){  //横向摆放
            R_img.width = iwidth;
            R_img.height 
= (zeimage.height*iwidth)/zeimage.width;
        }
else//纵向摆放
            R_img.height = iheight;
            R_img.width 
= (zeimage.width*iheight)/zeimage.height;
        }

    }
else{
        changeimg_reset(R_img);
    }

}

// ==============================================================================
/*                 兼容大部分浏览器的复制代码
    建档时间:2007-5-5
    最后修改时间:2007-5-5
    作者:ison
    说明:直接传入要复制的内容
*/
// ==============================================================================
function  copyToClipboard(txt) {
    
if(window.clipboardData){
        window.clipboardData.clearData();
        window.clipboardData.setData(
"Text", txt);
    }
else if(navigator.userAgent.indexOf("Opera"!= -1){
        window.location 
= txt;
    }
else if(window.netscape){
        
try{
            netscape.security.PrivilegeManager.enablePrivilege(
"UniversalXPConnect");
        }
catch (e){
            alert(
"您的firefox安全限制限制您进行剪贴板操作,请打开'about:config' 将signed.applets.codebase_principal_support '设置为true'之后重试");
            
return false;
        }

        
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
        
if (!clip)
            
return;
        
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
        
if (!trans)
            
return;
        trans.addDataFlavor(
'text/unicode');
        
var str = new Object();
        
var len = new Object();
        
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
        
var copytext = txt;
        str.data 
= copytext;
        trans.setTransferData(
"text/unicode",str,copytext.length*2);
        
var clipid = Components.interfaces.nsIClipboard;
        
if (!clip)
            
return false;
        clip.setData(trans,
null,clipid.kGlobalClipboard);
    }

}

 

// ==============================================================================
/*                通用左边菜单效果控制脚本(兼容firfox)
    建档时间:2007-4-24
    最后修改时间:2007-4-24
    作者:ison
    说明:
        1.size--表示父级的个数、num--表示当前选中的父级编号;
        2.class:lm_dl--表示没有选中的样色、lm_dl_check--表示选中后的样色(可根据具体自己定义相对应的样色);
        3.num_father--表示当前父级编号、num_son--表示当前子级编号
*/
// ==============================================================================
function  Show_sidebar_son(father_size,num) {
    
if(father_size>0){
        
for(var i=0; i<father_size; i++){
            
var obj_sun = $("son_"+i);
            
var obj_father = $("father_"+i);
            
if(i==num){
                obj_sun.style.display 
= "";
                obj_father.className 
= "lm_dl_check";
            }
else{
                obj_sun.style.display 
= "none";
                obj_father.className 
= "lm_dl";
            }

        }

    }

}

function  Chose_son(obj,num_son,num_father,url) {
    obj.href 
= url+"&bigkind_num="+num_father+"&Search_kindnum="+num_son;
}

// ==============================================================================
/*                通用列表选项选择状态样色控制脚本(兼容firfox)
    建档时间:2007-4-16
    最后修改时间:2007-4-18
    作者:ison
    注意事项:
        1.必须是table
        2.必须相对定义4个class:(.tab_onmouseover鼠标移到元素上的样色) (.tab_onmouseout鼠标移出元素的样色) (.tab_onclick鼠标点击的样色) (.tab_onclick td鼠标点击后td的样色)
    如何使用:
    <table cellpadding="0" cellspacing="0" border="0" width="98%" id="Table_mingxi_<%=i%>_<%=j%>" οnmοuseοver="mouse_event_changeclass(event)" οnmοuseοut="mouse_event_changeclass(event)" οnclick="Class_onclick(this);" class="tab_onmouseout">
*/
// ==============================================================================
function  mouse_event_changeclass(e) {
    
var isIE = (document.all);
    
var evt = null;
    
var obj = null;
    
if(e!=null){evt = e;}else{evt = event;}
    
if(isIE){
        obj 
= evt.srcElement;
        
//alert (obj.tagName);
        if(obj.tagName == "TD"){
            obj 
= obj.parentElement.parentElement.parentElement;
        }
else if(obj.tagName == "A" || obj.tagName == "SPAN" || obj.tagName == "IMG" || obj.tagName == "INPUT" || obj.tagName == "P"){
            obj 
= obj.parentElement.parentElement.parentElement.parentElement;
        }

    }
else{
        obj 
= evt.originalTarget;
        
if(obj.tagName == "TD"){
            obj 
= obj.offsetParent;
        }
else if(obj.tagName == "A" || obj.tagName == "SPAN" || obj.tagName == "IMG" || obj.tagName == "INPUT" || obj.tagName == "P"){
            obj 
= obj.offsetParent.offsetParent;
        }

    }

    obj.className 
= "Default_tabBG tab_on"+evt.type;
}

function  Class_onclick(obj) {
    
var objarray = document.getElementsByTagName("TABLE");
    
for(var i=0;i<objarray.length;i++){
        
if(objarray[i].className == "tab_onclick"){
            objarray[i].className 
= "tab_onmouseout";
            objarray[i].onmouseout 
= mouse_event_changeclass;
            objarray[i].onmouseover 
= mouse_event_changeclass;
        }

    }

    obj.onmouseout 
= "";
    obj.onmouseover 
= "";
    obj.className 
= "tab_onclick";
}

// ==============================================================================
/*                分类编辑脚本
    建档时间:2007-05-09
    最后修改时间:2007-05-09
    作者:ison
    注意事项:
        1.陆续完善
*/
// ==============================================================================
function  Ajax_LMMana_save(lmbh,action) {
    
if(action!="delete" || confirm("真的确认此操作?")){
        
var url = "../product/product_kind.jsp";
        
var pars = "";
        pars 
= ajaxaddpars_var("pact",pars,action);
        pars 
= ajaxaddpars_formtext("knum",pars,"lnum_"+lmbh);
        pars 
= ajaxaddpars_formtext("kind_mc",pars,"mc_"+lmbh);
        pars 
= ajaxaddpars_formtext("fnum",pars,"fnum_"+lmbh);
        pars 
= ajaxaddpars_formtext("level",pars,"level_"+lmbh);
        pars 
= ajaxaddpars_formtext("shownum",pars,"shownum_"+lmbh);
        pars 
= ajaxaddpars_formtext("state",pars,"state_"+lmbh);
        mynormalAjax(url,pars,
"Ajax_noreturn_div");
    }

}

function  LMMana_Open_menu(lmbh) {
    
var Open_Close = $("OpenClose_lmsub_"+lmbh);
    
if(Element.visible("Lm_sub_"+lmbh)){
        Open_Close.innerHTML 
= "展 开";
        $(
"Lm_sub_"+lmbh).hide();
    }
else{
        Open_Close.innerHTML 
= "折 叠";
        $(
"Lm_sub_"+lmbh).show();
    }

}

打包附上http://download1.csdn.net/down3/20070523/23075721914.rar

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值