本文給大家分享的javascript常用腳本有把JavaScript中的偽數(shù)組轉(zhuǎn)換為真數(shù)組、JavaScript設(shè)置主頁(yè)功能、JavaScript收藏功能、javascript檢測(cè)元素是否支持某個(gè)屬性代碼、創(chuàng)建和使用命名空間,有需要的小伙伴們快來(lái)看看吧。
把JavaScript中的偽數(shù)組轉(zhuǎn)換為真數(shù)組
在 JavaScript 中, 函數(shù)中的隱藏變量 arguments 和用 getElementsByTagName 獲得的元素集合(NodeList)都不是真正的數(shù)組,不能使用 push 等方法,在有這種需要的時(shí)候只能先轉(zhuǎn)換為真正的數(shù)組。
對(duì)于 arguments,可以使用 Array.prototype.slice.call(arguments); 來(lái)達(dá)到轉(zhuǎn)換的目的,但對(duì)于 NodeList 則不行了,其在 IE8 及以下將會(huì)報(bào)錯(cuò),只能說(shuō)其 JS 引擎有所限制。
因此,如果需要把 NodeList 轉(zhuǎn)換為真正的數(shù)組,則需要做下兼容處理。
代碼如下:
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設(shè)置主頁(yè)功能
代碼如下:
<!DOCTYPE html>
<html>
<head>
<title>JavaScript設(shè)置“設(shè)為首頁(yè)”和“收藏頁(yè)面”(兼容IE和火狐瀏覽器)</title>
<meta charset="utf-8">
<script type="text/javascript">
function setHomepage() {
if (document.all) {
/*IE*/
document.body.style.behavior = 'url(#default#homepage)';
document.body.setHomePage(window.location.href);
} else if (window.sidebar) {
/*FF*/
if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("該操作被瀏覽器拒絕,如果想啟用該功能,請(qǐng)?jiān)诘刂窓趦?nèi)輸入 about:config,然后將項(xiàng) signed.applets.codebase_principal_support值該為true");
}
}
var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
prefs.setCharPref('browser.startup.homepage', window.location.href);
} else {
/*chrome或者其他*/
alert("您的瀏覽器不支持自動(dòng)自動(dòng)設(shè)置首頁(yè),請(qǐng)使用瀏覽器菜單手動(dòng)設(shè)置!");
}
}
</script>
</head>
<body>
<a onclick="setHomepage()" title="設(shè)為首頁(yè)" href="javascript:void(0);">設(shè)為首頁(yè)</a>
</body>
</html>
JavaScript收藏功能
代碼如下:
<!DOCTYPE html>
<html>
<head>
<title>demo</title>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript">
jQuery.fn.addFavorite = function(l, h) {
return 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", "sidebar");
t.attr("title", l);
t.attr("href", h);
} else {
alert("請(qǐng)使用Ctrl+D將本頁(yè)加入收藏夾!");
}
});
};
$(function(){
$('#fav').addFavorite(document.title,location.href);
});
</script>
</head>
<body>
<a href="javascript:;" title="收藏本站" id="fav">收藏本站</a>
</body>
</html>
基于JQuery的,你可以根據(jù)自己的需求來(lái)修改。
javascript檢測(cè)元素是否支持某個(gè)屬性代碼
代碼如下:
function elementSupportsAttribute(element, attribute) {
var test = document.createElement(element);
if (attribute in test) {
return true;
} else {
return false;
}
};
用法:
代碼如下:
if (elementSupportsAttribute("textarea", "placeholder") {
} else {
// fallback
}
創(chuàng)建和使用命名空間
代碼如下:
var GLOBAL = {};
GLOBAL.namespace = function(str){
var arr = str.split('.'),o = GLOBAL;
for(k=(arr[0]=="GLOBAL")?1:0;k<arr.length;k++){
o[arr[k]]=o[arr[k]]||{};
o=o[arr[k]];
}
}
使用方式
代碼如下:
GLOBAL.namespace("Lang");
GLOBAL.Lang.test = function(){
//todo
}
以上就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
更多信息請(qǐng)查看IT技術(shù)專欄