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字符编码函数区别分析
Jun 05 Javascript
使用EXT实现无刷新动态调用股票信息
Nov 01 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
Jun 30 Javascript
AngularJS HTML编译器介绍
Dec 06 Javascript
JavaScript中window.open用法实例详解
Apr 15 Javascript
JS获取当前脚本文件的绝对路径
Mar 02 Javascript
Angular.JS通过指令操作DOM的方法
May 10 Javascript
基于js文件加载优化(详解)
Jan 03 Javascript
vue 实现全选全不选的示例代码
Mar 29 Javascript
详解JavaScript中关于this指向的4种情况
Apr 18 Javascript
微信网页登录逻辑与实现方法
Apr 29 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
Oct 30 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 冒泡排序算法的实现代码
2010/08/08 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
详解AngularJS 过滤器的使用
2018/06/02 Javascript
Python实例之wxpython中Frame使用方法
2014/06/09 Python
Python的subprocess模块总结
2014/11/07 Python
python生成随机mac地址的方法
2015/03/16 Python
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
Django框架封装外部函数示例
2019/05/28 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
Python 实现向word(docx)中输出
2020/02/13 Python
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
Melissa鞋马来西亚官方网站:MDreams马来西亚
2018/04/05 全球购物
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
node中使用shell脚本的方法步骤
2021/03/23 Javascript
电子商务专业学生的学习自我评价
2013/10/27 职场文书
医院辞职信范文
2014/01/17 职场文书
资源工程专业毕业生求职信
2014/02/27 职场文书
信息技术毕业生自荐信范文
2014/03/13 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
关于军训的感想
2015/08/07 职场文书
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python