自己用的javascript 共用函数

/**
 * 返回數組某個值的下標
 *
 */
Array.prototype.position = function(val){
    for(var i in this){
         if(this[i]==val){
             return i;
             break;
         }
    }
    return -1;
}

/**
*刪除數組中某個值
*
*/
Array.prototype.remove_value = function(val) {
  for (var i = 0; i < this.length; i++) {
    if (this[i] == val) {
      this.splice(i, 1);
      break;
    }
  }
}

/**
 * 判斷數組是否存在某個值
 *
 */
Array.prototype.in_array=function(val){
    this.S = String.fromCharCode(2);
    var r = new RegExp(this.S + val + this.S);
    return (r.test(this.S + this.join(this.S) + this.S));
}

/**
 * 数组去重复
 *
 */
Array.prototype.array_unique = function(){

    var m,n = [],o= {};
    for (var i = 0; (m = this[i]) !== undefined; i++){
        if (!o[m]){
            n.push(m);
            o[m] = true;
        }
    }
    return n;
}

/**
 *刪除字符串的空格換行符囘車符
 *
 */
String.prototype.trim = function(){

    return this.replace(/(\ +)|([ ])|([\r\n])/g, "");
}

String.prototype.is_email = function(){

    var reg = /^[A-Za-z\d]+([-_\.\+]*[A-Za-z\d])*@([A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z\d]{2,6}$/;
    return reg.test(this);
}

/**
 * 判斷是否為數組 不包括對象
 * 很好解決跨 iframe 判斷是的問題
 */
function is_array(obj){

    return Object.prototype.toString.call(obj) === ‘[object Array]‘;
}

//判断是否为空
function is_empty(str){
    if(str==null || typeof str=="undefined" || str.trim()==""){
        return true;
    }else{
        return false;
    }
} 

//添加收藏夹
function add_favorite() {
    var title = "收藏", url = ‘http://www.baidu.com‘;
    try {
        window.external.AddFavorite(url, title);
    }
    catch(e){
        try {
            window.sidebar.addPanel(title, url, "");
        } catch (e) {
            alert("您使用的浏览器暂不支持此功能,请自行加入收藏。");
        }
    }
    addCtpv(100, "AddFavorite");
}

//复制到剪贴板
function copy_to_clipboard(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("被浏览器拒绝!\n请在浏览器地址栏输入‘about:config‘并回车\n然后将‘signed.applets.codebase_principal_support‘设置为‘true‘");
        }
        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);
        alert("复制成功!")
    }
}

/**
 * 讀取COOKIE
 */
function get_cookie(name){
    var arg = decodeURIComponent(name) + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    var endstr = null;

    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg){
            endstr = document.cookie.indexOf (";", j);
            if (endstr == -1) endstr = document.cookie.length;
            return decodeURIComponent(document.cookie.substring(j, endstr));
        }
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break;
    }
    return null;
}

/**
 * 设置COOKIE expires 分鐘
 */
function set_cookie(name, value){
    var argv = set_cookie.arguments;
    var argc = set_cookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;

    if(expires){
        var exp = new Date();
        exp.setTime(exp.getTime() + expires*60*1000);
        expires = exp;
    }

    document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent (value)
        + ((expires == null) ? "" : ("; expires=" + expires))
        + ((path == null) ? "" : ("; path=" + path))
        + ((domain == null) ? "" : ("; domain=" + domain))
        + ((secure == true) ? "; secure" : "");
}

/**
 * 刪除COOKIE
 */
function delete_cookie(name){
    var exp = new Date();
    exp.setTime (exp.getTime() - 1);
    var cval = 0;
    document.cookie = encodeURIComponent(name) + "=" + cval + "; expires=" + exp.toGMTString();
}

/**
 * 出loading message 兼容IE
 * @param message 等於false 則隱藏
 * @param overlay false 不出遮罩層
 *
 */
function loading_message(message, overlay){

    $("#show_loading_message_container,#show_loading_message_layer").remove();
    if(message !== false){
        var div_html = ‘‘;
        if(overlay !== false){//overlayer設置
            div_html = ‘<div id="show_loading_message_layer" style="position:fixed;left:0;top:0;z-index:99998;background:#ddd;width:‘+$(document).width()+‘px;height:‘+$(document).height()+‘px"></div>‘;
        }
         div_html += ‘<div id="show_loading_message_container" style="overflow:hidden;background: #333;width: 269px;height: 107px;position: absolute;left: -1000px;top: -1000px;text-align: center;">‘;
         div_html += ‘<span style="color: #FFF;line-height: 107px;font-size: 23px; white-space: nowrap;">&nbsp;&nbsp;‘;
         div_html += ‘<img src="style/images/load.gif" style="vertical-align: middle;"/>&nbsp;&nbsp;‘+message+‘</span></div>‘;

        var $div = $(div_html);
        var $container = overlay !== false ? $div.eq(0).css(‘opacity‘, 0.30).siblings(‘#show_loading_message_container‘) : $div;

        $("body").append($div);
        $container.css({zIndex:99999, left:parseInt(($(window).width()-$container.width())/2), top:parseInt($(window).scrollTop()+($(window).height()-$container.height())/2)});

        $(window).on(‘resize‘, function(){
            $("#show_loading_message_layer").hide().css({width:$(document).width()+‘px‘, height:$(document).height()+‘px‘}).show();//先隱藏之前的取到真實的
            var $message_container = $("#show_loading_message_container");
            $message_container.css({left:parseInt(($(window).width()-$message_container.width())/2), top:parseInt($(window).scrollTop()+($(window).height()-$message_container.height())/2)});
        });

    }

}

/**
* check_uncheck 全選; 反選,單一反選去全選, 滿單選選全選
* 指定 checkedall 的checkbox checkedall=‘true‘
* $.check_uncheck(checkbox_name);
*/
jQuery.check_uncheck = function(checkbox_name){

    var $checkbox = $("input[name=‘"+checkbox_name+"‘]");//要操作的 checkbox 的對象包括了全選的checkbox
    var $checkallobj = $checkbox.filter("input[checkedall=‘true‘]").eq(0);//全選的checkbox

    $checkbox.on("click", function(){
        if($(this).is(":checked")){
            if($(this).is($checkallobj)){
                $checkbox.attr("checked", "checked");
            }else{
                if($checkbox.filter(":checked").length + 1 >= $checkbox.length){
                    $checkallobj.attr("checked", "checked");
                }
            }
        }else{
            if($(this).is($checkallobj)){
                $checkbox.removeAttr("checked");
            }else{
                $checkallobj.removeAttr("checked");
            }
        }
    });

};

//對象級的函數
/* show_message
 * _position_flag={left: ‘+100‘, top: ‘-100‘}信息提示 位置適合于任何坐標 false的時候則根據當前對象取坐標,不填則中間位置
 */
(function($){
    $.fn.show_message = function (_message, _position_flag, _times){

        var $this = $(this), sm_top = 0, sm_left = 0;

        if($this && (typeof(_position_flag) === "object") || _position_flag === false){

            var setting = {left: ‘+0‘, top: ‘-0‘};
            //    /(\+|\-)\s*\d+/
            $.extend(setting, _position_flag);
            sm_top = parseInt( eval( $this.offset().top + setting.top ));
            sm_left = parseInt( eval( $this.offset().left + setting.left ));

        }else{

            sm_top = $(window).height()/2;
            sm_left = $(window).width()/2;

        }

        var $message_obj = $(‘<span id="show_msg_tips" style="background:#FCE08E;border:1px solid #FF9933;color:#4B4B93;display:none;font-size:13px;font-weight:bold;line-height:25px;max-width:380px; min-width:200px;padding:8px;position:fixed;z-index:99999;">‘+ _message +‘</span>‘);

        $("#show_msg_tips").remove();
        $message_obj.appendTo(‘body‘).show().css({left:sm_left-$message_obj.width()/2, top:sm_top-$message_obj.height()/2});

        setTimeout(function(){
            $message_obj.fadeOut(1000);
        }, _times ? _times : 1800);

    }

})(jQuery);

/**兼容性
 * //绑定事件 window onload
  var addEvent = document.addEventListener ? function(el,type,callback){
    el.addEventListener( type, callback, !1 );
  } : function(el,type,callback){
    el.attachEvent( "on" + type, callback );
  }
  //移除事件
  var removeEvent = document.removeEventListener ? function(el,type,callback){
    el.removeEventListener( type, callback );
  } : function(el,type,callback){
    el.detachEvent( "on" + type, callback);
  }

  removeEvent(document,"mousemove",function);
 */

自己用的javascript 共用函数,布布扣,bubuko.com

时间: 2025-01-01 21:14:02

自己用的javascript 共用函数的相关文章

JavaScript Function 函数深入总结

整理了JavaScript中函数Function的各种,感觉函数就是一大对象啊,各种知识点都能牵扯进来,不单单是 Function 这个本身原生的引用类型的各种用法,还包含执行环境,作用域,闭包,上下文,私有变量等知识点的深入理解. 函数中的return return 语句可以不带有任何返回值,在这种情况下( return; 或函数中不含 return 语句时),函数在停止执行后将返回 undefiend 值.这种用法一般在需要提前停止函数执行而又不需要返回值的情况下. return false

javascript中函数作用域之”提升“

javascript中函数作用域之变量提升 当我们在函数内部用关键字var声明一个变量的时候,此变量的作用域限制在当前函数. 提升:在一个作用域内部,不管一个变量用var声明的位置在哪里,这个变量属于当前整个作用域,并且在当前作用域的任何位置都可以访问它.在javascript中,这种行为/现象称之为"提升",即一个变量在一个作用域的任何位置用var声明,javascript引擎都会把这些用var声明的变量"移动"到当前作用域的开始处. 谈到javascript这种

JavaScript 常用函数总结

javascript函数:  ·常规函数  ·数组函数  ·日期函数  ·数学函数  ·字符串函数 .cookie函数 1.常规函数 javascript常规函数包括以下9个函数:  (1)alert函数:显示一个警告对话框,包括一个OK按钮.  (2)confirm函数:显示一个确认对话框,包括OK.Cancel按钮.  (3)escape函数:将字符转换成Unicode码.  (4)eval函数:计算表达式的结果.  (5)isNaN函数:测试是(true)否(false)不是一个数字. 

JavaScript调用函数的方法

摘要:这篇文章详细的介绍了Javascript中各种函数调用的方法及其原理,对于理解JavaScript的函数有很大的帮助! 一次又一次的,我发现,那些有bug的Javascript代码是由于没有真正理解Javascript函数是如何工作而导致的(顺便说一下,许多那样的代码是我写的).JavaScript拥有函数式编程的特性,当我们选择面对它的时候,这将成为我们前进的阻碍.  作为初学者,我们来测试五种函数调用的方法,从表面来看我们会认为那些函数与C#中函数的作用非常相似,但是我们一会儿可以看到

javascript篇-----函数作用域,函数作用域链和声明提前

在一些类似C语言的编程语言中,花括号内的每一段代码都具有各自的作用域,而且变量在声明它们的代码段之外是不可见的(也就是我们不能在代码段外直接访问代码段内声明的变量),我们称之为块级作用域,然而,不同于这类型的编程语言,javascript是没有块级作用域.取而代之的,javascript使用的是块级作用域:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的. 在如下的所示的代码中,在不同位置定义了变量 i . j 和 k ,它们都在同一个作用域内——这三个变量在函数体内均是有定义

和demopu一起学习javascript ( concat函数 )

和demopu一起学习javascript (  concat函数 ) 定义和用法 concat方法可以把两个或者多个数组连接起来,组成一个新的数组. 语法 concat(array1,array2,......,arrayN) 参数 描述 array1 必需.该参数可以是具体的值,也可以是数组对象.可以是任意多个. 例子 1 var arr = ["George","John","Thomas"]; var arr2 = ["Jame

JavaScript encodeURI() 函数

encodeURI() 函数可把字符串作为 URI 进行编码. -------------------------------------------------------------------------------------------- 输入: <script type="text/javascript">document.write(encodeURI("http://www.w3school.com.cn")+ "<br

javascript常用函数整理

javascript函数: 1.禁止鼠标右键菜单代码块 function stop() {     return false; } document.oncontextmenu = stop; //禁用鼠标右键 document.ondragstart = stop; //禁止拖动 document.onselectstart = stop; //禁止选择 2.判断打开的页面是否存在父页面 if (window.top == window.self && window.parent == 

Javascript中函数的四种调用方式

一.Javascript中函数的几个基本知识点: 1.函数的名字只是一个指向函数的指针,所以即使在不同的执行环境,即不同对象调用这个函数,这个函数指向的仍然是同一个函数. 2.函数中有两个特殊的内部属性:arguments和this. arguments主要是用来保存函数参数,arguments中的callee属性主要是用来指向拥有当前arguments的函数(理解Javascript参数中的arguments对象). 3.在ECMAScript5中规范了另一个函数属性:caller(Opera