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 相关文章推荐
Mootools 1.2教程(2) DOM选择器
Sep 14 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
Feb 16 Javascript
js模拟滚动条(横向竖向)
Feb 22 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
Aug 19 Javascript
jquery indexOf使用方法
Aug 19 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
Jun 10 Javascript
jQuery实现向下滑出的二级菜单效果实例
Aug 22 Javascript
5分钟打造简易高效的webpack常用配置
Jul 04 Javascript
基于webpack 实用配置方法总结
Sep 28 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
Jun 01 Javascript
ES6 Symbol在对象中的作用实例分析
Jun 06 Javascript
Javascript如何递归遍历本地文件夹
Aug 06 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学习教程之第1天
2008/06/15 PHP
php 服务器调试 Zend Debugger 的安装教程
2009/09/25 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
javascript 写类方式之四
2009/07/05 Javascript
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
捕获和分析JavaScript Error的方法
2014/03/25 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
页面点击小红心js实现代码
2018/05/26 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
详解Python中的变量及其命名和打印
2016/03/11 Python
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
Python3生成手写体数字方法
2018/01/30 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
浅谈Python爬虫基本套路
2019/03/25 Python
python绘制彩虹图
2019/12/16 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
先进班级集体事迹材料
2014/01/30 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
新店开张活动方案
2014/08/24 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书
导游词之永济鹳雀楼
2020/01/16 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS