JavaScript常用スクリプトまとめ(二)
4962 ワード
JavaScriptの擬似配列を本物の配列に変換します.
JavaScriptでは、関数内の隠し変数argmentsとgetElements ByTagNameで得られた要素セット(NodeList)は本物の配列ではなく、pushなどの方法が使えなくなります.このような必要がある場合は、まず本物の配列に変換するしかありません.
argmentsに対しては、Aray.prototype.slite.call(argments)を使用することができます.変換の目的を達成するために来ましたが、NodeListに対してはだめです.IE 8と以下ではエラーが発生します.JSエンジンに制限があるとしか言えません.
したがって、NodeListを真の配列に変換する必要がある場合は、次の互換性のある処理が必要となる.
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
}
以上が本文の全部です.お好きになってください.