幾個常用JavaScript函數

m45y 9年前發布 | 894 次閱讀 JavaScript

//清理不可見多于字符 
/**

  • 清理不可見多于字符
  • @param {string} string 事件類型
  • @return {string} string */ var trim = function(string){ var string = string + ""; return string.replace(new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+\x24)", "g"), ""); };

//布爾類型或者01之間的切換 /**

  • 布爾類型或者01之間的切換
  • @param {Boolean, 0|1} val 值
  • @return {Boolean, 0|1} 返回反 */ var turn = function(val){ return typeof val == "boolean" ? (1 - val) : !val; };

//為目標元素添加事件監聽器 /**

  • 為目標元素添加事件監聽器
  • @param {HTMLElement|string|window} ele 目標元素或目標元素id
  • @param {string} type 事件類型
  • @param {Function} callback 需要添加的監聽器 */
    var on = function(ele, type, callback) { ele = typeof ele == "string" ? document.getElementById(ele) : ele; ele.attachEvent ? ele.attachEvent("on" + type,
     function (type) {
         callback.call(ele, type);
     }) : ele.addEventListener && ele.addEventListener(type, callback, false);
    
    };

//按照Attribute屬性獲得元素 /**

  • 按照Attribute屬性獲得元素 *
  • @param attr 屬性名稱
  • @param val 屬性的值
  • @param parent 父節點,默認全部
  • @param tag TAG名稱,默認所有
  • @return Elements 符合所有條件的DOM對象 / var walk = function(attr, callback, parent, tag) { var eles = (tag == "" && document.all) ? document.all : (parent || document).getElementsByTagName(tag || "*"); var ret = []; var val, item; for (var i = 0; i < eles.length; i++) {
     item = eles[i];
     val = item.getAttribute(attr);
     if (typeof val == "string" && val.length > 0) {
         callback && callback.call(null, item, val);
         ret.push(item);
     }
    
    } return ret; };

//目標元素絕對于屏幕的坐標 /**

  • 為目標元素添加事件監獲得元素絕對于屏幕的坐標
  • @param {element} ele 目標元素
  • @return {Integer, Integer} 返坐標對象 */ var pos = function(ele) { var x = 0, y = 0; if (ele && ele.offsetParent) {
     do {
         x += ele.offsetLeft;
         y += ele.offsetTop;
     } while (ele = ele.offsetParent);
    
    } return { x:x, y:y }; }

//獲取鼠標當前的坐標xy /**

  • 獲取鼠標當前的坐標xy
  • @param {event} 全局事件對象
  • @return {Integer, Integer} xy坐標 */ var mouse = function (event) { var e = event || window.event; if(e.type != "mouseover") return null; var x = 0, y = 0; if (e.pageX || e.pageY) {
     x = e.pageX;
     y = e.pageY;
    
    } else if (e.clientX || e.clientY) {
     x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
     y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
    
    } return {x:Math.abs(x), y:Math.abs(y)} }

//無返回發送數據 /**

  • 請求統計行動,將數據通知給服務器
  • @param {Array|string|Object} query 數據字符串或者對象 */ var log = function(url, query) { var ele = new Image(), data = []; window["$BAIDU:DATA$"] = ele; ele.onload = ele.onerror = ele.onabort = function () {
     ele.onload = ele.onerror = ele.onabort = null;
     ele = window["$BAIDU:DATA$"] = null;
    
    }; for (var n in query) {
     data.push(n + "=" + encodeURIComponent(query[n]));
    
    } data.push("ot=" + new Date().getTime()); query = data.join("&"); ele.src = url + "?" + query; return true; };</pre>
 本文由用戶 m45y 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!