JavaScript常用脚本汇总(二)


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 相关文章推荐
有关于JS构造函数的重载和工厂方法
Apr 07 Javascript
JS辨别访问浏览器判断是android还是ios系统
Aug 19 Javascript
利用CSS3在Angular中实现动画
Jan 15 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
Dec 02 Javascript
实例详解display:none与visible:hidden的区别
Mar 30 Javascript
移动端效果之IndexList详解
Oct 20 Javascript
js实现关闭网页出现是否离开提示
Dec 07 Javascript
详解vue-loader在项目中是如何配置的
Jun 04 Javascript
详解微信小程序调用支付接口支付
Apr 28 Javascript
vue实现的上拉加载更多数据/分页功能示例
May 25 Javascript
JS内置对象和Math对象知识点详解
Apr 03 Javascript
JavaScript parseInt0.0000005打印5原理解析
Jul 23 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
Mar 04 #Javascript
JavaScript常用脚本汇总(一)
Mar 04 #Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
Mar 04 #Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
Mar 04 #Javascript
JavaScript中的关联数组问题
Mar 04 #Javascript
JavaScript中常见获取元素的方法汇总
Mar 04 #Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
Mar 04 #Javascript
You might like
PHP Undefined index报错的修复方法
2011/07/17 PHP
php计算十二星座的函数代码
2012/08/21 PHP
php中的strpos使用示例
2014/02/27 PHP
php动态变量定义及使用
2015/06/10 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
2016/07/27 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
2017/05/08 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
JS实现无限轮播无倒退效果
2020/09/21 Javascript
Python函数参数类型*、**的区别
2015/04/11 Python
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
database面试题
2013/03/28 面试题
免职证明样本
2014/10/23 职场文书
2014年校长工作总结
2014/12/11 职场文书
励志语录:你若不勇敢,谁替你坚强
2019/11/08 职场文书
Python基础之Socket通信原理
2021/04/22 Python
在js中修改html body的样式
2021/11/11 Javascript