Posted in Javascript onMarch 04, 2015
把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 }
以上就是本文的全部内容了,希望大家能够喜欢。
JavaScript常用脚本汇总(二)
- Author -
hebedich声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@