Mozilla中独有的读写器(defineGetter、defineSetter)以及可以给Element,Event等加上prototype原型,使得在IE里用的方法同样在Mozilla中可以适用,下面贴出常用的一些代码
例如
obj.insertAdjacentHTML, currentStyle, obj.attachEvent, obj.detachEvent等等。

移动端页面自适应

// 页面自适应
!function (e, t) {
    function n() {
        let n = l.getBoundingClientRect().width;
        t = t || 540, n > t && (n = t);
        let i = 100 * n / e;
        r.innerHTML = "html{font-size:" + i + "px;}"
    }
    let i, d = document, o = window, l = d.documentElement, r = document.createElement("style");
    if (l.firstElementChild) l.firstElementChild.appendChild(r); else {
        let a = d.createElement("div");
        a.appendChild(r), d.write(a.innerHTML), a = null
    }
    n(), o.addEventListener("resize", function () {
        clearTimeout(i), i = setTimeout(n, 300)
    }, !1), o.addEventListener("pageshow", function (e) {
        e.persisted && (clearTimeout(i), i = setTimeout(n, 300))
    }, !1), "complete" === d.readyState ? d.body.style.fontSize = "16px" : d.addEventListener("DOMContentLoaded", function (e) {
        d.body.style.fontSize = "16px"
    }, !1)
}(750, 750);

本文章给大家介绍一些常用的Javascript表单验证代码,包括有:邮箱、电话、手机、身份证、网址等等验证函数各位同学可参考。

一:刷新本页面
前台:<script>window.location.href=window.location.href;</script>
后台:Response.Write(“<script>window.location.href=window.location.href;</script>”)
二:刷新父页面
前台:opener.location.href=opener.location.href;</script>
后台:Response.Write(“<script>opener.location.href=opener.location.href;</script>”)
三:链接到指定网页
前台:<script>window.location.href=’;
  MSDN说的window.navigate(sURL)方法是针对IE的,不适用于FF,在HTML DOM
Window Object中,根本没有列出window.navigate方法。
后台:Response.Write(“<script>window.location.href=’yourpage.aspx’;</script>”)
  或者: Response.Write(“NewUrl”);
四:刷新Iframe
前台:<script>iframe名字或者ID.location.reload(true);</script>

版权属于Erik Arvidsson, webfx

获取url参数

//获取url参数(?XXX=XXX&&XXX=XXX)
function getValue() {
    let arr = [];
    let name, value, i;
    let str = location.search;
    let num = str.indexOf("?");
    str = str.substr(num + 1);
    if (str != "") {
        let arrtmp = str.split("&");
        for (i = 0; i < arrtmp.length; i++) {
            num = arrtmp[i].indexOf("=");
            if (num > 0) {
                name = arrtmp[i].substring(0, num);
                value = arrtmp[i].substr(num + 1);
                arr[name] = value;
            }
        }
    }
    return arr;
}

 代码如下

五:定时刷新
function
flash(){window.location.href=”
//1000为一秒
<script>setTimeout(“location.href=;
<script>setTimeout(“self.location.reload();”,1000);<script>一秒一次

复制代码 代码如下:

对象按照key值排序

var compare = function (prop) {
    return function (obj1, obj2) {
        var val1 = obj1[prop];
        var val2 = obj2[prop];
        if (!isNaN(Number(val1)) && !isNaN(Number(val2))) {
            val1 = Number(val1);
            val2 = Number(val2);
        }
        if (val1 < val2) {
            return -1;
        } else if (val1 > val2) {
            return 1;
        } else {
            return 0;
        }            
    } 
}
var arr = [{name: "zlw", age: "24"}, {name: "wlz", age: "5"}];
arr.sort(compare("age"));

复制代码

前台:scriptwindow.location.href=window.location.href;/script
后台:Response.Write(“scriptwindow.location.href=window.location.href;/script”)
二:刷新父…

if (Browser.isMozilla) { // set up ie environment for Moz 

//验证Email
function checkEmail(mail) {
    if (mail.length > 0 && mail.length < 101) {
        var regex =
/^[_.0-9a-zA-Z+-][email protected]([0-9a-zA-Z]+[0-9a-zA-Z-]*.)+[a-zA-Z]{2,4}$/;
        if (regex.exec(mail)) {
            return true;
        }
    }
    return false;
}
//验证邮政编码
function checkZip(zip) {
    var regex = /^[0-9]{6}$/;
    if (regex.exec(zip)) {
        return true;
    }
    return false;
}
//验证身份证
function checkIdCard(idcard) {
    var regex = /^[0-9xX]{15,18}$/;
    if (regex.exec(idcard)) {
        return true;
    }
    return false;
}
//验证固话
function checkTel(tel) {
    var regex = /^[0-9]{3,4}-[0-9]{7,8}$/;
    if (regex.exec(tel)) {
        return true;
    }
    return false;
}
//验证手机
function checkMobile(mobile) {
    var regex = /^[0-9]{11}$/;
    if (regex.exec(mobile)) {
        return true;
    }
金沙国际官网,    return false;
}
//验证QQ
function checkQQ(qq) {
    qq = $.trim(qq);
    if (qq.length > 0 && qq.length < 101) {
        var regex = /^[0-9]{1,12}$/;
        if (regex.exec(qq)) {
            return true;
        } else {
            return checkEmail(qq);
        }
    }
    return false;
}
//验证名称中文,英文或数字
function checkUname(name) {
    var regex = /^[a-zA-Z0-9u4e00-u9fa5]{2,10}$/;
    if (regex.exec(name)) {
        return true;
    }
    return false;
}
function checkUname(name,start,end) {
    var regex = new
RegExp(“^[a-zA-Z0-9\u4e00-\u9fa5]{“+start+”,”+end+”}$”);
    if (regex.exec(name)) {
        return true;
    }
    return false;
}
//验证网址
function checkSiteUrl(url) {
    var regex =
/^;
    if (regex.exec(url)) {
        if (url.length < 201) {
            var istrue = false;
            $.ajax({
                type: “post”,
                url: “register.aspx”,
                dataType: “html”,
                async: false,
                data: “url=” + escape(url) + “&t=checkUrl”,
                cache: false,
                success: function(data) {
                    if (data == “can”) {
                        istrue = true;
                    }
                }
            });
            if (istrue) {
                return true;
            }
        }
    }
    return false;
}

   

代码如下…

  extendEventObject(); 
  emulateAttachEvent(); 
  emulateEventHandlers([“click”, “dblclick”, “mouseover”, “mouseout”, 
              “mousedown”, “mouseup”, “mousemove”, 
              “keydown”, “keypress”, “keyup”]); 

  emulateCurrentStyle(); 
  /*emulateDocumentAll(); 
  emulateElement() 
  */ 

  // It is better to use a constant for event.button 
  Event.LEFT = 0; 
  Event.MIDDLE = 1; 
  Event.RIGHT = 2; 

else { 
  Event = {}; 
  // IE is returning wrong button number 
  Event.LEFT = 1; 
  Event.MIDDLE = 4; 
  Event.RIGHT = 2; 

/* 
 * Extends the event object with srcElement, cancelBubble, returnValue, 
 * fromElement and toElement 
 */ 
function extendEventObject() { 
  Event.prototype.__defineSetter__(“returnValue”, function (b) { 
    if (!b) this.preventDefault(); 
    return b; 
  }); 

  Event.prototype.__defineSetter__(“cancelBubble”, function (b) { 
    if (b) this.stopPropagation(); 
    return b; 
  }); 

  Event.prototype.__defineGetter__(“srcElement”, function () { 
    var node = this.target; 
    while (node.nodeType != 1) node = node.parentNode; 
    return node; 
  }); 

  Event.prototype.__defineGetter__(“fromElement”, function () { 
    var node; 
    if (this.type == “mouseover”) 
      node = this.relatedTarget; 
    else if (this.type == “mouseout”) 
      node = this.target; 
    if (!node) return; 
    while (node.nodeType != 1) node = node.parentNode; 
    return node; 
  }); 

  Event.prototype.__defineGetter__(“toElement”, function () { 
    var node; 
    if (this.type == “mouseout”) 
      node = this.relatedTarget; 
    else if (this.type == “mouseover”) 
      node = this.target; 
    if (!node) return; 
    while (node.nodeType != 1) node = node.parentNode; 
    return node; 
  }); 

  Event.prototype.__defineGetter__(“offsetX”, function () { 
    return this.layerX; 
  }); 
  Event.prototype.__defineGetter__(“offsetY”, function () { 
    return this.layerY; 
  }); 

/* 
 * Emulates element.attachEvent as well as detachEvent 
 */ 
function emulateAttachEvent() { 
  HTMLDocument.prototype.attachEvent = 
  HTMLElement.prototype.attachEvent = function (sType, fHandler) { 
    var shortTypeName = sType.replace(/on/, “”); 
    fHandler._ieEmuEventHandler = function (e) { 
      window.event = e; 
      return fHandler(); 
    }; 
    this.addEventListener(shortTypeName, fHandler._ieEmuEventHandler, false); 
  }; 

  HTMLDocument.prototype.detachEvent = 
  HTMLElement.prototype.detachEvent = function (sType, fHandler) { 
    var shortTypeName = sType.replace(/on/, “”); 
    if (typeof fHandler._ieEmuEventHandler == “function”) 
      this.removeEventListener(shortTypeName, fHandler._ieEmuEventHandler, false); 
    else 
      this.removeEventListener(shortTypeName, fHandler, true); 
  }; 

/* 
 * This function binds the event object passed along in an 
 * event to window.event 
 */ 
function emulateEventHandlers(eventNames) { 
  for (var i = 0; i < eventNames.length; i++) { 
    document.addEventListener(eventNames[i], function (e) { 
      window.event = e; 
    }, true);  // using capture 
  } 

/* 
 * Simple emulation of document.all 
 * this one is far from complete. Be cautious 
 */ 

function emulateAllModel() { 
  var allGetter = function () { 
    var a = this.getElementsByTagName(“*”); 
    var node = this; 
    a.tags = function (sTagName) { 
      return node.getElementsByTagName(sTagName); 
    }; 
    return a; 
  }; 
  HTMLDocument.prototype.__defineGetter__(“all”, allGetter); 
  HTMLElement.prototype.__defineGetter__(“all”, allGetter); 

function extendElementModel() { 
  HTMLElement.prototype.__defineGetter__(“parentElement”, function () { 
    if (this.parentNode == this.ownerDocument) return null; 
    return this.parentNode; 
  }); 

  HTMLElement.prototype.__defineGetter__(“children”, function () { 
    var tmp = []; 
    var j = 0; 
    var n; 
    for (var i = 0; i < this.childNodes.length; i++) { 
      n = this.childNodes[i]; 
      if (n.nodeType == 1) { 
        tmp[j++] = n; 
        if (n.name) {  // named children 
          if (!tmp[n.name]) 
            tmp[n.name] = []; 
          tmp[n.name][tmp[n.name].length] = n; 
        } 
        if (n.id)    // child with id 
          tmp[n.id] = n 
      } 
    } 
    return tmp; 
  }); 

  HTMLElement.prototype.contains = function (oEl) { 
    if (oEl == this) return true; 
    if (oEl == null) return false; 
    return this.contains(oEl.parentNode); 
  }; 

function emulateCurrentStyle() { 
  HTMLElement.prototype.__defineGetter__(“currentStyle”, function () { 
    return this.ownerDocument.defaultView.getComputedStyle(this, null); 
    /* 
    var cs = {}; 
    var el = this; 
    for (var i = 0; i < properties.length; i++) { 
      cs.__defineGetter__(properties[i], encapsulateObjects(el, properties[i])); 
    } 
    return cs; 
    */ 
  }); 

function emulateHTMLModel() { 

  // This function is used to generate a html string for the text properties/methods 
  // It replaces ‘\n’ with “<BR”> as well as fixes consecutive white spaces 
  // It also repalaces some special characters 
  function convertTextToHTML(s) { 
    s = s.replace(/\&/g, “&”).replace(/</g, “<“).replace(/>/g, “>”).replace(/\n/g, “<BR>”); 
    while (/\s\s/.test(s)) 
      s = s.replace(/\s\s/, ”  “); 
    return s.replace(/\s/g, ” “); 
  } 

  HTMLElement.prototype.insertAdjacentHTML = function (sWhere, sHTML) { 
    var df;  // : DocumentFragment 
    var r = this.ownerDocument.createRange(); 

    switch (String(sWhere).toLowerCase()) { 
      case “beforebegin”: 
        r.setStartBefore(this); 
        df = r.createContextualFragment(sHTML); 
        this.parentNode.insertBefore(df, this); 
        break; 

      case “afterbegin”: 
        r.selectNodeContents(this); 
        r.collapse(true); 
        df = r.createContextualFragment(sHTML); 
        this.insertBefore(df, this.firstChild); 
        break; 

      case “beforeend”: 
        r.selectNodeContents(this); 
        r.collapse(false); 
        df = r.createContextualFragment(sHTML); 
        this.appendChild(df); 
        break; 

      case “afterend”: 
        r.setStartAfter(this); 
        df = r.createContextualFragment(sHTML); 
        this.parentNode.insertBefore(df, this.nextSibling); 
        break; 
    } 
  }; 

  HTMLElement.prototype.__defineSetter__(“outerHTML”, function (sHTML) { 
   var r = this.ownerDocument.createRange(); 
   r.setStartBefore(this); 
   var df = r.createContextualFragment(sHTML); 
   this.parentNode.replaceChild(df, this); 

   return sHTML; 
  }); 

  HTMLElement.prototype.__defineGetter__(“canHaveChildren”, function () { 
    switch (this.tagName) { 
      case “AREA”: 
      case “BASE”: 
      case “BASEFONT”: 
      case “COL”: 
      case “FRAME”: 
      case “HR”: 
      case “IMG”: 
      case “BR”: 
      case “INPUT”: 
      case “ISINDEX”: 
      case “LINK”: 
      case “META”: 
      case “PARAM”: 
        return false; 
    } 
    return true; 
  }); 

  HTMLElement.prototype.__defineGetter__(“outerHTML”, function () { 
    var attr, attrs = this.attributes; 
    var str = “<” + this.tagName; 
    for (var i = 0; i < attrs.length; i++) { 
      attr = attrs[i]; 
      if (attr.specified) 
        str += ” ” + attr.name + ‘=”‘ + attr.value + ‘”‘; 
    } 
    if (!this.canHaveChildren) 
      return str + “>”; 

    return str + “>” + this.innerHTML + “</” + this.tagName + “>”; 
  }); 

  HTMLElement.prototype.__defineSetter__(“innerText”, function (sText) { 
    this.innerHTML = convertTextToHTML(sText); 
    return sText; 
  }); 

  var tmpGet; 
  HTMLElement.prototype.__defineGetter__(“innerText”, tmpGet = function () { 
    var r = this.ownerDocument.createRange(); 
    r.selectNodeContents(this); 
    return r.toString(); 
  }); 

  HTMLElement.prototype.__defineSetter__(“outerText”, function (sText) { 
    this.outerHTML = convertTextToHTML(sText); 
    return sText; 
  }); 
  HTMLElement.prototype.__defineGetter__(“outerText”, tmpGet); 

  HTMLElement.prototype.insertAdjacentText = function (sWhere, sText) { 
    this.insertAdjacentHTML(sWhere, convertTextToHTML(sText)); 
  }; 
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图