一些值得拥有的使用javascript函数

///
//实现GridView的CheckBox全部选择和全部取消
///
function CheckAll(checkbox) {
    var elements = document.getElementsByTagName("input");
    for (var i = 0; i < elements.length; i++) {
        if (elements[i].type == "checkbox") {
            checkBoxID = elements[i].id;
            //alert(elname);
            //alert(checkBoxID.indexOf("CheckRow"));
            //判断id中是否包含CheckRow
            if (checkBoxID.indexOf("CheckRow") > -1) {
                elements[i].checked = checkbox.checked;
            }
        }
    }
}
///

///
//用于给TreeView的 chebox添加 单击事件(如果要将某一TreeView变为单选择 只需调用下面方法)
//参数treeID:目录树的ID,,使用时不要忘记引用一个jQuery包
///
function SetTreeNodeClickHander(treeID) {
    //var objs = document.getElementsByTagName("input");
    var objs = $("#"+treeID+" :checkbox");
    for (var i = 0; i < objs.length; i++) {
        if (objs[i].type == 'checkbox') {
            var obj = objs[i];
            //if (obj.id.indexOf(treeID) != -1) {
                objs[i].onclick = function() { TreeSingleSelect(treeID, this); };
            //}
        }
    }
}
//用Treeview chekbox节点单选的处理事件
function TreeSingleSelect(treeID, checkNode) {
    if (!treeID)
        return;
    //var objs = document.getElementsByTagName("input");
    var objs = $("#"+treeID+" :checkbox");
    for (var i = 0; i < objs.length; i++) {
        if (objs[i].type == 'checkbox') {
            var obj = objs[i];
            //if (obj.id.indexOf(treeID) != -1) {
                if (obj != checkNode) {
                    obj.checked = false;
                //}
            }
        }
    }
}
///


//在GridView中复制记录时,判断是否只选定了一条记录,使用时不要忘记引用一个jQuery包
//调用形式: OnClientClick="return CheckIsSingleSelected('GridView1')"

function CheckIsSingleSelected(objId) {
    var objs = $("#"+objId+" :checkbox");
    var count = 0;
    for (var i = 0; i < objs.length; i++) {
        if (objs[i].type == 'checkbox' && objs[i].id != "Check") {
            var obj = objs[i];
            if (obj.checked == true) {
                count++;
            }
        }
    }

    if (count > 1) {
        alert("您只能选择一条记录!");
        return false;
    }
    else {
        if (count < 1) {
            alert("您没有选择记录!");
            return false;
        }
        else
            return true;
    }
}

///
//折叠隐藏
//boxID表格ID
//imgID图片ID
//isShow是否显示
///
function boxCollapsible(boxID, imgID, isShow) {
    var oBox = document.getElementById(boxID);
    if (isShow == null) isShow = (oBox.style.display == 'none') ? true : false;
    oBox.style.display = (isShow) ? 'block' : 'none';
    if (imgID != null)
        document.getElementById(imgID).src = (isShow) ? './Images/collapse.jpg' : './Images/expand.jpg';
}
///

///
//初始化下拉列表选择的值
//objId:下拉列表对象ID
//SelVal:选择的值
///
function InitSelected(objId,SelVal)
{
 var obj = document.getElementById(objId);

 for(var i = 0; i<obj.length;i++)
 {
  if(obj.options[i].value == SelVal)
  {
   obj.options[i].selected = true;
  }
 }
}

 

///
//在控件中添加οnkeyup="clearNoNum(this)"实现只能输入数字和小数点
///
function clearNoNum(obj) {
    //alert(obj.value);
    obj.value = obj.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
    obj.value = obj.value.replace(/^\./g, "");  //验证第一个字符是数字而不是.
    obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的.
    obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
}
///

///
//在控件中添加 onblur = "OnlyPermitNumber(this)"实现只允许输入正负整数、正负实数!
///
function OnlyPermitNumber(obj) {
    //alert(obj.value);
    var str = obj.value;
    //var patt1 = new RegExp("/^-?[1-9]*(\.\d*)?$|^-?0(\.\d*)?$/");
    //var patt1 = /^-?[1-9]*(\.\d*)?$|^-?0(\.\d*)?$/;
    var patt1 = /^-?[0-9]+(\.\d+)?$|^-?0(\.\d+)?$/;
    //var patt1 = /^[+-]?\d*\.?\d{1,3}$/;   
    var result = patt1.test(str);
    //alert(result);
    if (!result) {
        alert("只允许输入正负整数、正负实数!");
        obj.value = "";
    }
}
///

///
//使用方法:在控件中添加 onkeyup = "OnlyPermitPositiveInteger(this)"  onafterpaste = "OnlyPermitPositiveInteger(this)"
//功能:实现文本框只能输入数字代码(小数点也不能输入)
///
function OnlyPermitPositiveInteger(obj) {
    obj.value = obj.value.replace(/\D/g,'');
}
///

///
//隐藏浮动div
///
function HideLayer(obj) {
    var oDiv = document.getElementById(obj);
    oDiv.style.display = 'none';
}
///

///
//得到浮动div的坐标,为setPlace调用
///
function getPos(cell) {
    var pos = new Array();
    var t = cell.offsetTop;
    var l = cell.offsetLeft;
    while (cell = cell.offsetParent) {
        t += cell.offsetTop;
        l += cell.offsetLeft;
    }
    pos[0] = t;
    pos[1] = l;
    return pos;
}
///

///
//设置div显示并设置位置 
function setPlace(cell, obj) {
    var arrPos = getPos(cell);
    var oDiv = document.getElementById(obj);
    var objDlg = document.getElementById("plPopup");  //得到Panel对象
    oDiv.style.display = 'block';
    var tdwidth = cell.offsetWidth;
    var tdheight = cell.offsetHeight;
    var tdleft = arrPos[1];
    var tdtop = arrPos[0];
    oDiv.style.width = tdwidth + 50;
    oDiv.style.left = tdleft;     //减去Panel的坐标值+2-parseInt(objDlg.style.left)
    oDiv.style.top = tdtop + tdheight; //-parseInt(objDlg.style.top)
}
///

///
//此函数用于禁止从键盘向文本框中输入数据,只能通过选择填入,如树选择
///
function ClearTextBoxData(obj) {
    obj.value = "";
}
///

///
//弹出模式对话框
///
function OpenModalDialog(dialogUrl, dialogWidth, dialogHeight) {
    var strSept = (dialogUrl.indexOf('?') == -1) ? '?' : '&';
    dialogUrl = dialogUrl + strSept + 'r=' + Math.random(); //避免弹出窗口缓存
    if (dialogWidth == null)
        dialogWidth = window.screen.availWidth - 40;
    if (dialogHeight == null)
        dialogHeight = window.screen.availHeight - 40;
    return window.showModalDialog(dialogUrl, window, 'status:no;help:no;scroll:yes;resizable:yes;dialogWidth:' + dialogWidth + 'px;dialogHeight:' + dialogHeight + 'px;');
    //return window.open(dialogUrl, "window", 'status:yes;help:no;scroll:yes;resizable:yes;menubar:yes;dialogWidth:' + dialogWidth + 'px;dialogHeight:' + dialogHeight + 'px;');
}

function OpenModalPage(dialogUrl, dialogWidth, dialogHeight) {
    if (dialogWidth == null)
        dialogWidth = window.screen.availWidth - 40;
    if (dialogHeight == null)
        dialogHeight = window.screen.availHeight - 40;

    var retValue = OpenModalDialog(dialogUrl, dialogWidth, dialogHeight);
    if (retValue == null)
        return;
    if (retValue == "Reload_Window") {
        window.location.reload();
        return;
    }
}
///

///
//弹出非模式窗口
///
function OpenDialog(sURL)
{
 var iWidth = window.screen.width - 12;
 var iHeight = window.screen.height - 60;
 var sFeature = 'location=no,resizable=yes,menubar=no,scrollbars=no,status=no,titlebar=no,toolbar=no,top=0,left=0,width='+iWidth+',height='+iHeight;
 var w = window.open(sURL,"SVS_"+location.hostname.replace(/\.|-/ig,'_'),sFeature);
 if(!w){
   var msg = "窗口可能被拦截工具拦截,当前页面将退出!\n";
   msg +=    "请先关闭可能的拦截工具,如:Windows IE窗口拦截设置、google bar、\n";
   msg +=    "网易助手等。然后尝试再次连接!\n";
   msg +=    "为此给你带来不便,我们深表歉意!\n"
   msg +=    "您是否确认不采用全屏模式操作?";
   if(confirm(msg)){
    window.location.href = sURL;
   }
 }
 else{
   w.focus();
   window.open("","_self");//fix ie7
   setTimeout("window.close()",1);
 }
}

///
//得到地址栏传递参数的函数
//window.alert(location.href);
//window.alert(QueryString("tid"));
//window.alert(QueryString("fpage"));
///
function QueryString(qs) {
    var s = location.href;
    s = s.replace("?", "?&").split("&");
    var re = "";
    for (i = 1; i < s.length; i++)
        if (s[i].indexOf(qs + "=") == 0)
        re = s[i].replace(qs + "=", "");
    return re;
}
///

///
//图片等比例缩放
//<img width="800" height="600" src="11.jpg" οnlοad="javascript:ResizePic(this)">
///
var FitWidth = 800; //图片宽度
var FitHeight = 600; //图片高度
function ResizePic(ImgTag) {
    var image = new Image();
    image.src = ImgTag.src;
    if (image.width > 0 && image.height > 0) {
        if (image.width / image.height >= FitWidth / FitHeight) {
            if (image.width > FitWidth) {
                ImgTag.width = FitWidth;
                ImgTag.height = (image.height * FitWidth) / image.width;
            }
            else {
                ImgTag.width = image.width;
                ImgTag.height = image.height;
            }
        }
        else {
            if (image.height > FitHeight) {
                ImgTag.height = FitHeight;
                ImgTag.width = (image.width * FitHeight) / image.height;
            }
            else {
                ImgTag.width = image.width;
                ImgTag.height = image.height;
            }
        }
    }
}

///
//使用鼠标滚轮缩放图片,点击图片可在新窗口打开,图片等比例缩放
//<img src="11.jpg" οnlοad="javascript:resizeimg(this,800,600)">
///
function resizeimg(ImgD, iwidth, iheight) {
    var image = new Image();
    image.src = ImgD.src;
    if (image.width > 0 && image.height > 0) {
        if (image.width / image.height >= iwidth / iheight) {
            if (image.width > iwidth) {
                ImgD.width = iwidth;
                ImgD.height = (image.height * iwidth) / image.width;
            } else {
                ImgD.width = image.width;
                ImgD.height = image.height;
            }
            ImgD.alt = image.width + "×" + image.height;
        }
        else {
            if (image.height > iheight) {
                ImgD.height = iheight;
                ImgD.width = (image.width * iheight) / image.height;
            } else {
                ImgD.width = image.width;
                ImgD.height = image.height;
            }
            ImgD.alt = image.width + "×" + image.height;
        }
        ImgD.style.cursor = "pointer"; //改变鼠标指针
        ImgD.onclick = function() { window.open(this.src); } //点击打开大图片
        if (navigator.userAgent.toLowerCase().indexOf("ie") > -1) { //判断浏览器,如果是IE
            ImgD.title = "请使用鼠标滚轮缩放图片,点击图片可在新窗口打开";
            ImgD.onmousewheel = function img_zoom() //滚轮缩放
            {
                var zoom = parseInt(this.style.zoom, 10) || 100;
                zoom += event.wheelDelta / 12;
                if (zoom > 0) this.style.zoom = zoom + "%";
                return false;
            }
        } else { //如果不是IE
            ImgD.title = "点击图片可在新窗口打开";
        }
    }
}


//以下为实现树中父节点选中所有子节点选中或反选,某个子节点选中父节点也选中的效果
//主调函数为:CheckEvent()

function public_GetParentByTagName(element, tagName) {
    var parent = element.parentNode;
    var upperTagName = tagName.toUpperCase();
    //如果这个元素还不是想要的tag就继续上溯
    while (parent && (parent.tagName.toUpperCase() != upperTagName)) {
        parent = parent.parentNode ? parent.parentNode : parent.parentElement;
    }
    return parent;
}

//设置节点的父节点Cheched——该节点可访问,则他的父节点也必能访问
function setParentChecked(objNode) {
    var objParentDiv = public_GetParentByTagName(objNode, "div");
    if (objParentDiv == null || objParentDiv == "undefined") {
        return;
    }
    var objID = objParentDiv.getAttribute("ID");
    objID = objID.substring(0, objID.indexOf("Nodes"));
    objID = objID + "CheckBox";
    var objParentCheckBox = document.getElementById(objID);
    if (objParentCheckBox == null || objParentCheckBox == "undefined") {
        return;
    }
    if (objParentCheckBox.tagName != "INPUT" && objParentCheckBox.type == "checkbox")
        return;
    objParentCheckBox.checked = true;
    setParentChecked(objParentCheckBox);
}

//设置节点的子节点uncheched——该节点不可访问,则他的子节点也不能访问
function setChildUnChecked(divID) {
    var objchild = divID.children;
    var count = objchild.length;
    for (var i = 0; i < objchild.length; i++) {
        var tempObj = objchild[i];
        if (tempObj.tagName == "INPUT" && tempObj.type == "checkbox") {
            tempObj.checked = false;
        }
        setChildUnChecked(tempObj);
    }
}

//设置节点的子节点cheched——该节点可以访问,则他的子节点也都能访问
function setChildChecked(divID) {
    var objchild = divID.children;
    var count = objchild.length;
    for (var i = 0; i < objchild.length; i++) {
        var tempObj = objchild[i];
        if (tempObj.tagName == "INPUT" && tempObj.type == "checkbox") {
            tempObj.checked = true;
        }
        setChildChecked(tempObj);
    }
}

//触发事件
function CheckEvent() {

    var objNode = event.srcElement;

    if (objNode.tagName != "INPUT" || objNode.type != "checkbox")
        return;

    if (objNode.checked == true) {
        setParentChecked(objNode);
        var objID = objNode.getAttribute("ID");
        var objID = objID.substring(0, objID.indexOf("CheckBox"));
        var objParentDiv = document.getElementById(objID + "Nodes");
        if (objParentDiv == null || objParentDiv == "undefined") {
            return;
        }
        setChildChecked(objParentDiv);
    }
    else {
        var objID = objNode.getAttribute("ID");
        var objID = objID.substring(0, objID.indexOf("CheckBox"));
        var objParentDiv = document.getElementById(objID + "Nodes");
        if (objParentDiv == null || objParentDiv == "undefined") {
            return;
        }
        setChildUnChecked(objParentDiv);
    }
}


//WEB页面导出为Word文档后分页&横向打印的方法
//  <div id="test">
//    aaa^bbb^ccc
//  </div>
//  <input type="button" οnclick="javascript:AllAreaWord(test,'^');" value="导出页面指定区域内容到Word"/>

/**//**//**//*
                 *
                 * @param {Object} cont  要导出的html元素内容的id,注意不要加双引号
                 * @param {Object} key   分页关键字
                 */
function AllAreaWord(cont, key) {
    var oWD = new ActiveXObject("Word.Application");
    //默认为页面视图
    var oDC = oWD.Documents.Add("", 0, 0);

    //横向打印设置部分
    oDC.PageSetup.LineNumbering.Active = false;
    oDC.PageSetup.Orientation.wdOrientLandscape = 1; //设置为横向打印
    oDC.PageSetup.TopMargin = oDC.Application.CentimetersToPoints(3.17);
    oDC.PageSetup.BottomMargin = oDC.Application.CentimetersToPoints(3.17);
    oDC.PageSetup.LeftMargin = oDC.Application.CentimetersToPoints(2.54);
    oDC.PageSetup.RightMargin = oDC.Application.CentimetersToPoints(2.54);
    oDC.PageSetup.Gutter = oDC.Application.CentimetersToPoints(0);
    oDC.PageSetup.HeaderDistance = oDC.Application.CentimetersToPoints(1.5);
    oDC.PageSetup.FooterDistance = oDC.Application.CentimetersToPoints(1.75);
    oDC.PageSetup.PageWidth = oDC.Application.CentimetersToPoints(29.7);
    oDC.PageSetup.PageHeight = oDC.Application.CentimetersToPoints(21);
    oDC.PageSetup.FirstPageTray = 0;
    oDC.PageSetup.OtherPagesTray = 0;
    oDC.PageSetup.SectionStart = 2;
    oDC.PageSetup.OddAndEvenPagesHeaderFooter = false;
    oDC.PageSetup.DifferentFirstPageHeaderFooter = false;
    oDC.PageSetup.VerticalAlignment = 0;
    oDC.PageSetup.SuppressEndnotes = false;
    oDC.PageSetup.MirrorMargins = false;
    oDC.PageSetup.TwoPagesOnOne = false;
    oDC.PageSetup.BookFoldPrinting = false;
    oDC.PageSetup.BookFoldRevPrinting = false;
    oDC.PageSetup.BookFoldPrintingSheets = 1
    oDC.PageSetup.GutterPos = 0;
    oDC.PageSetup.LayoutMode = 2;

    var oRange = oDC.Range(0, 1);
    //var oRange1 = oDC.Range(0,2);
    var sel = document.body.createTextRange();
    //参数为html元素id
    sel.moveToElementText(cont);
    sel.select();
    sel.execCommand("Copy");
    oRange.Paste();
    oWD.Application.Visible = true;
    //得到打开后word的selection对象
    var selection = oWD.Selection;
    //设置字体大小
    selection.Font.Size = 10;
    //ctrl+A 全选操作
    selection.WholeStory();
    //清除格式
    selection.Find.ClearFormatting();
    //指定查找关键字
    selection.Find.Text = key;
    //^m为手动分页符标记
    //向下查找
    selection.Find.Forward = true;
    selection.Find.Wrap = 1;
    //不区分大小写
    selection.Find.MatchCase = false;
    //不匹配整个单词
    selection.Find.MatchWholeWord = false;
    //如果找到指定字符串返回真,否则返回false
    while (selection.Find.Execute()) {
        //插入分页符,分页符常量为7,具体可查word api
        selection.InsertBreak(7);
    }

    //保存word文档为test.doc
    oDC.SaveAs("test.doc");
}
///


//整个表格拷贝到EXCEL中
//调用形式:ExportTableToExcel("table1")


function ExportTableToExcel(tableid) {//整个表格拷贝到EXCEL中
    //alert();  
    var curTbl = document.getElementById(tableid);
    var oXL = new ActiveXObject("Excel.Application");
    //创建AX对象excel   
    var oWB = oXL.Workbooks.Add();
    //获取workbook对象
    var oSheet = oWB.ActiveSheet;

    //横向打印
    //oSheet.PageSetup.Orientation =2;
   
    //激活当前sheet   
    var sel = document.body.createTextRange();
    sel.moveToElementText(curTbl);
    //把表格中的内容移到TextRange中   
    sel.select();
    //全选TextRange中内容   
    sel.execCommand("Copy");
    //复制TextRange中内容   
    oSheet.Paste();
    //粘贴到活动的EXCEL中
   
    var rowCount = curTbl.rows.length; ;
    var colCount = curTbl.rows(0).cells.length;  
    //alert(rowCount);
    //alert(colCount);  
    for (var i = 1; i <= rowCount; i++)
        for (var j = 1; j <= colCount; j++) {
        oWB.ActiveSheet.Cells(i, j).Borders.Weight = 2;
        //oWB.ActiveSheet.Range("A1:H10").Borders.Weight = 2;
        //oWB.ActiveSheet.Cells(i, j).NumberFormatLocal = "@ ";
        //!!!!!!!上面这一句是将单元格的格式定义为文本
        oWB.ActiveSheet.Cells(i, j).Font.Size = 12;
        //设置为12号字
    }  
   
    oXL.Visible = true;
    //设置excel可见属性
    oXL.UserControl = true;
    //很重要,不能省略,不然会出问题 意思是excel交由用户控制
    oXL = null;
    oWB = null;
    oSheet = null;   
}


//整个表格拷贝到EXCEL中
//调用形式:ExportTableToExcel2("table1",2,9)  横向A4纸


function ExportTableToExcel2(tableid, Orientation,PaperSize) {//整个表格拷贝到EXCEL中   
    var curTbl = document.getElementById(tableid);
    var oXL = new ActiveXObject("Excel.Application");
    //创建AX对象excel   
    var oWB = oXL.Workbooks.Add();
    //获取workbook对象
    var oSheet = oWB.ActiveSheet;

    //横向打印
    oSheet.PageSetup.Orientation = Orientation;
    oSheet.PageSetup.PaperSize = PaperSize;

    //激活当前sheet   
    var sel = document.body.createTextRange();
    sel.moveToElementText(curTbl);
    //把表格中的内容移到TextRange中   
    sel.select();
    //全选TextRange中内容   
    sel.execCommand("Copy");
    //复制TextRange中内容   
    oSheet.Paste();
    //粘贴到活动的EXCEL中

    var rowCount = curTbl.rows.length; ;
    var colCount = curTbl.rows(0).cells.length;
    //alert(rowCount);
    //alert(colCount);  
    for (var i = 1; i <= rowCount; i++)
        for (var j = 1; j <= colCount; j++) {
        oWB.ActiveSheet.Cells(i, j).Borders.Weight = 2;
        //oWB.ActiveSheet.Range("A1:H10").Borders.Weight = 2;
        oWB.ActiveSheet.Cells(i, j).Font.Size = 12;
        oWB.ActiveSheet.Cells(i, j).WrapText = false;
        //设置为12号字
    }
    oSheet.Columns.AutoFit;
    oSheet.Rows.AutoFit;
    oXL.Visible = true;
    //设置excel可见属性
    oXL.UserControl = true;
    //很重要,不能省略,不然会出问题 意思是excel交由用户控制
    oXL = null;
    oWB = null;
    oSheet = null;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值