JavaScript常用脚本汇总(二)
来源: 阅读:673 次 日期:2015-03-09 17:13:02
温馨提示: 小编为您整理了“JavaScript常用脚本汇总(二)”,方便广大网友查阅!

本文给大家分享的javascript常用脚本有把JavaScript中的伪数组转换为真数组、JavaScript设置主页功能、JavaScript收藏功能、javascript检测元素是否支持某个属性代码、创建和使用命名空间,有需要的小伙伴们快来看看吧。

把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设置主页功能

代码如下:

<!DOCTYPE html>

<html>

<head>

<title>JavaScript设置“设为首页”和“收藏页面”(兼容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("该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入 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("您的浏览器不支持自动自动设置首页,请使用浏览器菜单手动设置!");

}

}

</script>

</head>

<body>

<a onclick="setHomepage()" title="设为首页" href="javascript:void(0);">设为首页</a>

</body>

</html>

JavaScript收藏功能

代码如下:

<!DOCTYPE html>

<html>

<head>

<title>demo</title>

<meta charset="utf-8">

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>

<script src="//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("请使用Ctrl+D将本页加入收藏夹!");

}

});

};

$(function(){

$('#fav').addFavorite(document.title,location.href);

});

</script>

</head>

<body>

<a href="javascript:;" title="收藏本站" id="fav">收藏本站</a>

</body>

</html>

基于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<arr.length;k++){

o[arr[k]]=o[arr[k]]||{};

o=o[arr[k]];

}

}

使用方式

代码如下:

GLOBAL.namespace("Lang");

GLOBAL.Lang.test = function(){

//todo

}

以上就是本文的全部内容了,希望大家能够喜欢。

更多信息请查看IT技术专栏

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map