天天看點

common.js

common.js

function openwinx(url,name,w,h)  

{  

    window.open(url,name,"top=100,left=400,width=" + w + ",height=" + h + ",toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no,status=no");  

}  

function dialog(url,name,w,h)  

    return showmodaldialog(url, name, 'dialogwidth:'+w+'px; dialogheight:'+h+'px; help: no; scroll: yes; status: no');  

//表單常用docform=document.forms[i]  

function loadurlaction (url,docform,submittype){  

    docform.action = url;  

    docform.method = submittype;   //設定送出方式   

    docform.submit();  

function dosubmit (docform,url){  

function doreset (docform){  

    docform.reset();  

function dorefresh (){  

    self.location.reload();  

表中不填還原預設值,送出調用驗證(适合新增頁面 ,不适合修改)

common.js

//如果input為空,還原input 預設值  

function resetfields(whichform) {  

    for (var i=0; i<whichform.length; i++) {  

        var element = whichform.elements[i];  

        if (element.type == "submit") continue;  

        if (element.type == "radio") continue;  

        if (element.type == "checkbox") continue;  

 if (!element.defaultvalue) continue;  

        element.onfocus = function() {  

            if (this.value == this.defaultvalue) {  

                this.value = "";     

            }  

        }      

        element.onblur = function() {  

            if (this.value == "") {  

                this.value = this.defaultvalue;     

            }     

        }  

    }     

function prepareforms() {  

    for (var i=0; i<document.forms.length; i++) {  

        var thisform = document.forms[i];  

        resetfields(thisform);  

      /*  thisform.onsubmit = function() { 

            return validataform(this); 

        }*/  

    }  

addloadevent(prepareforms);  

class attribute

common.js

/** 

 * 為對象添加 classname 

 * @param {object} 需要添加classname的節點 

 * @param {string}  要添加的 classname 

 */  

function addclass(element,value) {  

    if (!element.classname) {  

        element.classname = value;  

    }else {  

        newclassname = element.classname;  

        newclassname+= " ";  

        newclassname+= value;  

        element.classname = newclassname;  

 * 為對象删除 classname 

 * @param {object} 需要删除classname的節點 

 * @param {string}  要删除的 classname 

function removeclass(el, cls) {  

    var el = $(el);  

    if(!el) return;  

    el.classname = el.classname.replace(new regexp("(^|\\s+)" + cls + "(\\s+|$)"), ' ');  

 * 判斷對象是否存在該 classname 

 * @param {object} 需要判斷classname的節點 

 * @param {string}  要判斷的 classname 

function hasclass(node, classname) {  

    var elementclassname = node.classname;  

    return (elementclassname.length > 0 && (elementclassname == classname || new regexp("(^|\\s)" + classname + "(\\s|$)").test(elementclassname)));  

}     

/* grab elements from the dom by classname */  

function getelementsbyclass(searchclass,node,tag) {  

    var classelements = new array();  

    if ( node == null )  

        node = document;  

    if ( tag == null )  

        tag = '*';  

    var els = node.getelementsbytagname(tag);  

    var elslen = els.length;  

    var pattern = new regexp("(^|\\s)"+searchclass+"(\\s|$)");  

    for (i = 0, j = 0; i < elslen; i++) {  

        if ( pattern.test(els[i].classname) ) {  

            classelements[j] = els[i];  

            j++;  

    return classelements;  

浏覽器檢測

common.js

var browser = {};  

var useragent = navigator.useragent.tolowercase();  

browserversion({'ie':'msie','firefox':'','chrome':'','opera':'','safari':'','maxthon':'','mozilla':'','webkit':''});  

if(browser.safari) {  

    browser.firefox = true;  

browser.opera = browser.opera ? opera.version() : 0;  

function browserversion(types) {  

    var other = 1;  

    for(i in types) {  

        var v = types[i] ? types[i] : i;  

        if(useragent.indexof(v) != -1) {  

            var re = new regexp(v + '(\\/|\\s)([\\d\\.]+)', 'ig');  

            var matches = re.exec(useragent);  

            var ver = matches != null ? matches[2] : 0;  

            other = ver !== 0 ? 0 : other;  

        }else {  

            var ver = 0;  

        eval('browser.' + i + '= ver');  

    browser.other = other;  

if(browser.ie){alert('232');}else{alert('ff');}  

sdfsd

common.js

/* quick getelement reference */  

function $() {  

    var elements = new array();  

    for (var i = 0; i < arguments.length; i++) {  

        var element = arguments[i];  

        if (typeof element == 'string')  

            element = document.getelementbyid(element);  

        if (arguments.length == 1)  

            return element;  

        elements.push(element);  

    return elements;  

function getparameter(name){  

    var search = document.location.search;  

    var pattern = new regexp("[?&]"+name+"\=([^&]+)", "g");  

    var matcher = pattern.exec(search);  

    var items = null;  

    if(null != matcher){  

        items = decodeuricomponent(matcher[1]);  

        //items = unescape(matcher[1]);  

    return items;  

function isundefined(variable) {  

    return typeof variable == 'undefined' ? true : false;  

function dwrite(ht_str) {  

    document.write(ht_str);  

function addevent(elm, evtype, fn, usecapture) {  

    if (elm.addeventlistener) {   // mozilla系列  

        elm.addeventlistener(evtype, fn, usecapture);  

        return true;  

    else if (elm.attachevent) {   //ie系列  

        var r = elm.attachevent('on' + evtype, fn);  

        return r;  

    else {  

        elm['on' + evtype] = fn;  

var eventcache = function(){  

    var listevents = [];  

    return {  

        listevents : listevents,  

        add : function(node, seventname, fhandler){  

            listevents.push(arguments);  

        },  

        flush : function(){  

            var i, item;  

            for(i = listevents.length - 1; i >= 0; i = i - 1){  

                item = listevents[i];  

                if(item[0].removeeventlistener){  

                    item[0].removeeventlistener(item[1], item[2], item[3]);  

                };  

                if(item[1].substring(0, 2) != "on"){  

                    item[1] = "on" + item[1];  

                if(item[0].detachevent){  

                    item[0].detachevent(item[1], item[2]);  

                item[0][item[1]] = null;  

            };  

    };  

}();  

addevent(window,'unload',eventcache.flush);  

function addloadevent(func) {  

    var oldonload = window.onload;  

    if (typeof window.onload != 'function') {  

        window.onload = func;     

        window.onload = function() {  

            oldonload();  

            func();  

/**  

* 擷取event對象  

* @method getevent  

* @return {event} event對象     

* getevent();  

*/  

function getevent() { //ie && ff  

    if(document.all) return window.event;  

    func = getevent.caller;  

    while(func != null) {  

        var arg0 = func.arguments[0];  

        if (arg0) {  

            if((arg0.constructor  == event || arg0.constructor == mouseevent) || (typeof(arg0) == "object" && arg0.preventdefault && arg0.stoppropagation)) {  

                return arg0;  

        func=func.caller;  

    return null;  

/*阻止浏覽器預設操作*/  

function stopdefault() {  

    var ev = getevent();  

    if(ev.stoppropagation){ //firefox  

        ev.preventdefault();  

    }else{ //ie   

        ev.returnvalue = false;  

/*功能:停止事件冒泡*/  

function stopbubble() {  

        ev.stoppropagation();    

        ev.cancelbubble = true;  

 * 禁止event事件冒泡,阻止預設行為  

 * @method stopevent  

 * stopevent();  

function stopevent() {  

    stopdefault();  

    stopbubble();  

function toggle(obj) {  

    var el = document.getelementbyid(obj);  

    if ( el.style.display != 'none' ) {  

        el.style.display = 'none';  

        el.style.display = 'block';  

/* insert an element after a particular node */  

function insertafter(parent, node, referencenode) {  

    parent.insertbefore(node, referencenode.nextsibling);  

isundefined

common.js

function ajaxmenu(ctrlobj, timeout, cache, duration, pos, recall) {  

    if(isundefined(pos)) pos = '43';  

addevent : 注釋:elm元素evtype時調用fn函數,usecapture參數:true時為事件捕獲(event capturing) false時為事件冒泡(event bubblin),預設為false;

common.js

<html xmlns="http://www.w3.org/1999/xhtml">  

<head>  

    <title>調用示範</title>  

   <script type="text/javascript" language="javascript">  

   function addevent(elm, evtype, fn, usecapture) {...}  

   function show() {  

           alert("message!");   

   }  

   addevent(window,"load",show)  

   </script>  

 </head>  

 <body>  

    調用示範    

 </body>  

</html>  

       注釋:我們有<code>getelementbyid()</code> , <code>getelementsbyname()</code> , <code>getelementsbytagname()</code> , 現在終于有了getelementsbyclass(),它的作用是找到node中具有相同class的tag元素;

common.js

&lt;html&gt;  

   &lt;title&gt;getelementsbyclass()調用示範&lt;/title&gt;   

   &lt;script type="text/javascript"&gt;  

        function getelementsbyclass(searchclass,node,tag) {...}  

&lt;/head&gt;  

 &lt;body&gt;   

    &lt;input class="aa" value="0"  /&gt;  

    &lt;div id="wrapper"&gt;  

        &lt;input class="aa" value="1"  /&gt;  

        &lt;input class="aa" value="2"  /&gt;  

        &lt;input class="aa" value="3"  /&gt;  

        &lt;input class="aa" value="4"  /&gt;  

        &lt;input class="bbb" value="5"  /&gt;  

     &lt;/div&gt;  

    &lt;input  type="button" value="調用函數"  onclick="alert(getelementsbyclass('aa',wrapper,'input').length)"/&gt;  

&lt;/body&gt;&lt;/html&gt;  

 toggler

common.js

&lt;html&gt;&lt;head&gt; &lt;title&gt;toggle調用示範&lt;/title&gt;   

 &lt;script type="text/javascript"&gt;  

      function toggle(obj) {...}  

 &lt;/script&gt;  

 &lt;/head&gt;&lt;body&gt;   

          xx,到此一遊  

   &lt;/div&gt;  

     &lt;input  type="button" value="show"  onclick="toggle('wrapper')"/&gt;  

  注釋:很奇怪,dom中給出了insertbefore()方法,卻沒有insertafter()方法,不過現在有了這個函數.在目标元素後面插入新的元素

common.js

&lt;title&gt;insertafter()調用示範&lt;/title&gt;   

      function insertafter(newelement, targetelement){...}  

      window.onload=function(){     

             var new =document.createelement("span");     

             var b =document.createtextnode("new text!");     

             new.appendchild(b);     

             var target = document.getelementbyid("b");     

             insertafter(new,target);       

     &lt;div id="b"&gt;bbb&lt;/div&gt;    

&lt;/body&gt;  

阻止浏覽器預設操作

common.js

&lt;script type="text/javascript"&gt;    

    function stopdefault( e ) {       

        //适用于火狐等實作了w3c規範的浏覽器       

        if ( e &amp;&amp; e.preventdefault )           

            e.preventdefault();       

        //适用于ie      

        else          

            window.event.returnvalue = false;       

        return false;   

&lt;/script&gt;    

&lt;a href="http://www.google.com" id="testlink"&gt;google&lt;/a&gt;    

&lt;script type="text/javascript"&gt;   

    var test = document.getelementbyid('testlink');   

    test.onclick = function(e) {       

        alert('我的連結位址是:' + this.href + ', 但是我不會跳轉。');       

        stopdefault(e);   

    }