JavaScript常用スクリプトまとめ(二)

4962 ワード

JavaScriptの擬似配列を本物の配列に変換します.
JavaScriptでは、関数内の隠し変数argmentsとgetElements ByTagNameで得られた要素セット(NodeList)は本物の配列ではなく、pushなどの方法が使えなくなります.このような必要がある場合は、まず本物の配列に変換するしかありません.
argmentsに対しては、Aray.prototype.slite.call(argments)を使用することができます.変換の目的を達成するために来ましたが、NodeListに対してはだめです.IE 8と以下ではエラーが発生します.JSエンジンに制限があるとしか言えません.
したがって、NodeListを真の配列に変換する必要がある場合は、次の互換性のある処理が必要となる.
 
  
function realArray(c) {
    try {
        return Array.prototype.slice.call(c);
    } catch (e) {
        var ret = [], i = 0, len = c.length;
        for (; i < len; i++) {
            ret[i] = (c[i]);
        }
        return ret;
    }
}
JavaScript設定ホームページ機能
 
  



    JavaScript “ ” “ ”( IE )
   
    <br>         function setHomepage() { <br>             if (document.all) { <br>                 /*IE*/ <br>                 document.body.style.behavior = 'url(#default#homepage)'; <br>                 document.body.setHomePage(window.location.href); <br>             } else if (window.sidebar) { <br>                 /*FF*/ <br>                 if (window.netscape) { <br>                     try { <br>                         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); <br>                     } catch (e) { <br>                         alert(" , , about:config, signed.applets.codebase_principal_support true"); <br>                     } <br>                 } <br>                 var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch); <br>                 prefs.setCharPref('browser.startup.homepage', window.location.href); <br>             } else { <br>                 /*chrome */ <br>                 alert(" , !"); <br>             } <br>         } <br>    


    トップページに


JavaScriptコレクション機能
 
  



    demo
   
   
   
    <br>         jQuery.fn.addFavorite = function(l, h) { <br>             return this.click(function() { <br>                 var t = jQuery(this); <br>                 if(jQuery.browser.msie) { <br>                     window.external.addFavorite(h, l); <br>                 } else if (jQuery.browser.mozilla || jQuery.browser.opera) { <br>                     t.attr("rel", "sidebar"); <br>                     t.attr("title", l); <br>                     t.attr("href", h); <br>                 } else { <br>                     alert(" Ctrl+D !"); <br>                 } <br>             }); <br>         }; <br>         $(function(){ <br>             $('#fav').addFavorite(document.title,location.href); <br>         }); <br>    


    コレクション

 
JQueryに基づいて、あなたは自分の要求によって修正できます.
javascript検出要素はある属性コードをサポートしていますか?
 
  
function elementSupportsAttribute(element, attribute) {
  var test = document.createElement(element);
  if (attribute in test) {
    return true;
  } else {
    return false;
  }
};
使い方:
 
  
if (elementSupportsAttribute("textarea", "placeholder") {
} else {
   // fallback
}
名前空間の作成と使用
 
  
var GLOBAL = {};
GLOBAL.namespace = function(str){
var arr = str.split('.'),o = GLOBAL;
for(k=(arr[0]=="GLOBAL")?1:0;k     o[arr[k]]=o[arr[k]]||{};
    o=o[arr[k]];
    }
}
使い方
 
  
GLOBAL.namespace("Lang");
GLOBAL.Lang.test = function(){
    //todo
}
以上が本文の全部です.お好きになってください.