最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript常用脚本汇总(二)_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:35:14
文档

JavaScript常用脚本汇总(二)_javascript技巧

JavaScript常用脚本汇总(二)_javascript技巧:把JavaScript中的伪数组转换为真数组 在 JavaScript 中, 函数中的隐藏变量 arguments 和用 getElementsByTagName 获得的元素集合(NodeList)都不是真正的数组,不能使用 push 等方法,在有这种需要的时候只能先转换为真正的数组。 对于 argument
推荐度:
导读JavaScript常用脚本汇总(二)_javascript技巧:把JavaScript中的伪数组转换为真数组 在 JavaScript 中, 函数中的隐藏变量 arguments 和用 getElementsByTagName 获得的元素集合(NodeList)都不是真正的数组,不能使用 push 等方法,在有这种需要的时候只能先转换为真正的数组。 对于 argument


把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 < len; i++) {
ret[i] = (c[i]);
}
return ret;
}
}

JavaScript设置主页功能

代码如下:



JavaScript设置“设为首页”和“收藏页面”(兼容IE和火狐浏览器)


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("该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入 about:config,然后将项 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("您的浏览器不支持自动自动设置首页,请使用浏览器菜单手动设置!");
}
}



设为首页


JavaScript收藏功能

代码如下:



demo




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("请使用Ctrl+D将本页加入收藏夹!");
}
});
};
$(function(){
$('#fav').addFavorite(document.title,location.href);
});



收藏本站


基于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
}

文档

JavaScript常用脚本汇总(二)_javascript技巧

JavaScript常用脚本汇总(二)_javascript技巧:把JavaScript中的伪数组转换为真数组 在 JavaScript 中, 函数中的隐藏变量 arguments 和用 getElementsByTagName 获得的元素集合(NodeList)都不是真正的数组,不能使用 push 等方法,在有这种需要的时候只能先转换为真正的数组。 对于 argument
推荐度:
标签: 常用 js 脚本
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top