JavaScript常用腳本匯總(二)
來(lái)源:易賢網(wǎng) 閱讀:801 次 日期:2015-03-11 15:13:05
溫馨提示:易賢網(wǎng)小編為您整理了“JavaScript常用腳本匯總(二)”,方便廣大網(wǎng)友查閱!

本文給大家分享的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ù)專欄

更多信息請(qǐng)查看腳本欄目
易賢網(wǎng)手機(jī)網(wǎng)站地址:JavaScript常用腳本匯總(二)
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)