解析javascript 实用函数的使用详解


Posted in Javascript onMay 10, 2013
function addBookMark(url, title){
//将网页添加到收藏addBookMark(window.location,document.title) 
    if(document.all){
      window.external.addFavorite(url,title);
    }else if (window.sidebar){
      window.sidebar.addPanel(title,url,'');
    }else{
      alert('添加失败');
    }
}   

function setHomepage(obj,url) {
// setHome(this, window.location) 
    try {   
        obj.style.behavior = 'url(#default#homepage)';   
        obj.setHomePage(url);   
    } catch (e) {   
        if (window.netscape) {   
            try {   
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");   
            } catch (e) {   
                alert('此操作被浏览器拒绝!\n请在浏览器地址栏输入"about:config"并回车\n然后将 [signed.applets.codebase_principal_support]的值设置为"true",双击即可。');   
            }   
            var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);   
            prefs.setCharPref('browser.startup.homepage', vrl);   
        }   
    }   
}   
function boxMove(box){
//可移动的层
    var w = box.scrollWidth,h = box.scrollHeight;
    var iWidth = document.documentElement.clientWidth; 
    var iHeight = document.documentElement.clientHeight;     
    var moveX = 0,moveY = 0,moveTop = 0,moveLeft = 0,moveable = false;
    box.onmousedown = function(e){    
    moveable = true;     
    e = window.event?window.event:e;
    moveX = e.clientX-box.offsetLeft;        
    moveY = e.clientY-box.offsetTop;
    box.style.zIndex++;
    }
    document.onmousemove = function(e){
        if(moveable){
            e = window.event?window.event:e;        
            var x = e.clientX - moveX;
            var y = e.clientY - moveY;
            if ( x > 0 &&( x + w < iWidth) && y > 0 && (y + h < iHeight)){
                box.style.left = x + "px";
                box.style.top = y + "px";
                box.style.margin = "auto";
            }
        }
    }
    document.onmouseup = function (){moveable = false;};
}
function getHtmlRoot(){
/*获得html文档的根元素*/
    if(document.compatMode.toLowerCase()=="css1compat"){
        htmlRoot = document.documentElement;
    }else{
        htmlRoot = document.body;
    }
    return htmlRoot;
}

function showWindow(boxId, closeId, showBg){//弹窗
    htmlRoot = getHtmlRoot();
    box = document.getElementById(boxId);
    boxId = '#' + boxId;
    closeId = '#' + closeId;
    showBox = $(boxId);
    showBox.show();
    z_index = 20;
    moveLeft =  (htmlRoot.clientWidth- box.clientWidth)/2 + htmlRoot.scrollLeft +'px';
    moveTop = (htmlRoot.clientHeight - box.clientHeight)/2 + htmlRoot.scrollTop;+'px';
    showBox.css({position:'absolute', left:moveLeft,zIndex:z_index, top:moveTop});
    boxMove(box);
    if(showBg){
        objMask = document.createElement("div");
        objMask.className = "BoxMask";
        htmlRoot.appendChild(objMask);
        objMask.style.cssText += 'position:absolute;top:0; left:0;filter:Alpha(Opacity=50);opacity:0.5;background:#AAA;';
        objMask.style.zIndex = z_index -1;
        objMask.style.width =  htmlRoot.clientWidth + 'px';
        objMask.style.height = htmlRoot.scrollHeight + htmlRoot.scrollTop + 'px';
    }
    $(closeId).click(function(){
        showBox.hide();
        mybg.style.display = "none";
    });
    $('.closeBtn').click = function(){
        showBox.hide();
        mybg.style.display = "none";    
    };
}
function getFormQuery(formId){
/*生成查询字串*/
    formObj = document.getElementById(formId);
       var i, queryString = "", and = "", itemValue;
       for(i = 0; i<formObj.length; i++ ){
             var item = formObj[i];
              if ( item.name!='' ){
                     if(item.type == 'select-one'){
                         itemValue = item.options[item.selectedIndex].value;
                     }else if ( item.type=='checkbox' || item.type=='radio'){
                         if ( item.checked == false ){ continue; }
                         itemValue = item.value;
                     }else if ( item.type == 'button' || item.type == 'submit' || item.type == 'reset' || item.type == 'image'){
                         continue;
                     }else{
                          itemValue = item.value;
                     }
                   //  itemValue = escape(itemValue);
                     queryString += and + item.name + '=' + itemValue;
                     and="&";
                   //queryString += and + encodeURIComponent(item.name) + '=' +encodeURIComponent( itemValue); 
              }
       }
       return queryString;
}
//定义js错误处理函数
onerror = errHandle;
function errHandle(msg,url,line){
    var txt=""
    txt = "本页中有错误!\n\n"
    txt += "错误: "+ msg +"\n"
    txt += "地址: " + url + "\n"
    txt += "行数: " + line + "\n\n"
    alert(txt);
    return false;
}

function setAutoWidth(id,width,size){
//最小或最大宽度
    var obj = document.getElementById(id);
    if(size=='max'){
        obj.style.width = (obj.clientWidth > width) ? width + "px" : "auto";
    }else{
        obj.style.width = (obj.clientWidth < width) ? width + "px" : "auto";
    }
}
function fontScroll(id){
/*向左滚动的文字 */
    var obj = document.getElementById(id);
    var text = obj.innerHTML;
    var first = text.charAt(0);
    var left = text.substring(1, text.length);
    obj.inerHTML = left + first;
    //这个写函数之外 setInterval('fontScroll(id)', 500);
}
function bubbleSort(arr){
/*冒泡排序法*/
var sign = false // 初始化换位标记为假
for(var i=0; i < arr.length-1; i++){
    for(varj=0; j < arr.length-1-i; j++){
        if(arr[j]> arr[j+1]){
            vartemp = arr[j]
            arr[j]= arr[j+1]
            arr[j+1]= temp
            sign= true // 若当前这一圈比较中,有过换位,则置换位标记为真
        }
    }
    if(sign)// 判断当前这一圈有过换位否…
       sign= false // 有过换位,则重置换位标记为假
    else
       break// 没有,则终止
    }
return arr;
}
function getCoordinate(evt){
/*获得光标的坐标*/
    var x = evt.clientX;
    var y = evt.clientY;
    document.getElementById('show').innerHTML = x +' &' + y;
}
 
function checkEmail(email){
/*检测多个以分号(;)分隔的Email格式*/
if(email != null){
    if(email.indexOf(";",0) == -1){ //indexOf(被查找,起始位)返某个字符串在源字符串中首次出现的位置,失败返回-1
        if(!isEmail(email)){
            alert("单个邮件格式有误,请重输!");
            document.getElementById("email").focus();
            return false;
        }
    }else{
        var emailArr = email.split(";");//split(分隔段,数组总长度)字符串分割成字符串数组
        var i, iMax = emailArr.length;
        for(i = 0; i < iMax; i++){
            if(emailArr[i] != null || emailArr != ""){
                if(!isEmail(emailArr[i])){
                    alert("多个邮箱格式中有邮箱格式不正确,请重新核对后再输入!");    
                    document.getElementById("email").focus();
                    return false;
                }
            }
        }
    }    
}
function isEmail(str){
   var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;
   return reg.test(str);//test(被测字串)检测一个字符串是否匹配某个模式.
}
}
Javascript 相关文章推荐
关于jQuery新的事件绑定机制on()的使用技巧
Apr 26 Javascript
用队列模拟jquery的动画算法实例
Jan 20 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
Jan 26 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
Feb 23 Javascript
JS实现的幻灯片切换显示效果
Sep 07 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
Sep 19 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
js 模仿锚点定位的实现方法
Nov 19 Javascript
javascript实现简易计算器
Feb 01 Javascript
js图片放大镜实例讲解(必看篇)
Jul 17 Javascript
VUE注册全局组件和局部组件过程解析
Oct 10 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
Aug 20 Javascript
jQuery拖动图片删除示例
May 10 #Javascript
jquery 提交值不为空的元素示例代码
May 10 #Javascript
JQuery中SetTimeOut传参问题探讨
May 10 #Javascript
jQuery中读取json文件示例代码
May 10 #Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
May 10 #Javascript
javascript级联下拉列表实例代码(自写)
May 10 #Javascript
jquery ui对话框实例代码
May 10 #Javascript
You might like
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
BootStrap中Datepicker控件带中文的js文件
2016/08/10 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
利用HBuilder打包前端开发webapp为apk的方法
2017/11/13 Javascript
JavaScript设计模式之工厂模式简单实例教程
2018/07/03 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
[02:42]2014DOTA2国际邀请赛 三冰专访:我会打到Ti20
2014/07/13 DOTA
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
python显示天气预报
2014/03/02 Python
python简单猜数游戏实例
2015/07/09 Python
Python subprocess模块常见用法分析
2018/06/12 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
2020/03/09 Python
浅谈Python中的字符串
2020/06/10 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
如何基于Python按行合并两个txt
2020/11/03 Python
python爬虫智能翻页批量下载文件的实例详解
2021/02/02 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
电大物流学生的自我评价
2013/10/25 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
维稳工作承诺书
2015/01/20 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
mysql联合索引的使用规则
2021/06/23 MySQL
tomcat下部署jenkins的方法
2022/05/06 Servers