把JavaScript中的偽數組轉換為真數組
在JavaScript 中, 函數中的隱藏變數arguments 和用getElementsByTagName 得到的元素集合(NodeList)都不是真正的數組,不能使用push 等方法,在有這種需要的時候只能先轉換為真正的數組。
對於arguments,可以使用Array.prototype.slice.call(arguments); 來達到轉換的目的,但對於NodeList 則不行了,其在IE8 及以下將會報錯,只能說其JS 引擎有所限制。
因此,如果需要把 NodeList 轉換為真正的數組,則需要做下相容處理。
function realArray(c) {
try {
return Array.prototype.slice.call(c);
} catch (e) {
var ret = [], i = 0, len = c.length;
for (; i
ret[i] = (c[i]);
}
return ret;
}
}
JavaScript設定主頁功能
JavaScript設定「設為首頁」和「收藏頁」(相容於IE和火狐瀏覽器)
設為首頁
JavaScript收藏功能
複製程式碼 程式碼如下:
示範標題>
jQuery.fn.addFavorite = function(l, h) {
回傳 this.click(function() {
var t = jQuery(this);
if(jQuery.browser.msie) {
window.external.addFavorite(h, l);
} else if (jQuery.browser.mozilla || jQuery.browser.opera) {
t.attr("rel", "側邊欄");
t.attr("標題", l);
t.attr("href", h);
} 其他 {
alert("請使用Ctrl D將本頁加入收藏夾!");
}
});
};
$(函數(){
$('#fav').addFavourite(document.title,location.href);
});
腳本>
頭>
收藏本站
身體>
基於JQuery的,你可以依照自己的需求來修改。
javascript偵測元素是否支援某個屬性程式碼
函數 elementSupportsAttribute(元素, 屬性) {
var test = document.createElement(element);
if(測試中的屬性){
返回真實;
} 其他 {
回傳錯誤;
}
};
用法:
if (elementSupportsAttribute("textarea", "placeholder") {
} 其他 {
// 後備
}
建立並使用命名空間
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(){
//待辦事項
}
以上就是本文的全部內容了,希望大家能夠喜歡。