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 相关文章推荐
关于onchange事件在IE和FF下的表现及解决方法
Mar 08 Javascript
js中string转int把String类型转化成int类型
Aug 13 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
Aug 24 Javascript
js实现分页功能
May 24 Javascript
使用Vue构建可重用的分页组件
Mar 26 Javascript
详解如何用babel转换es6的class语法
Apr 03 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
Jan 20 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
Mar 04 Javascript
JS判断数组里是否有重复元素的方法小结
May 21 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
Sep 20 Javascript
如何优雅地在Node应用中进行错误异常处理
Nov 25 Javascript
JavaScript 如何在浏览器中使用摄像头
Dec 02 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
咖啡知识 咖啡养豆要养多久 排气又是什么
2021/03/06 新手入门
PHP GD库相关图像生成和处理函数小结
2016/09/30 PHP
nginx 设置多个站跨域
2021/03/09 Servers
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
jquery分页插件AmSetPager(自写)
2013/04/15 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
Vuex实现购物车小功能
2020/08/17 Javascript
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
django admin 后台实现三级联动的示例代码
2018/06/22 Python
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
python如何更新包
2020/06/11 Python
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
大学生村官心得体会范文
2014/01/04 职场文书
办理退休介绍信
2014/01/09 职场文书
2014年3.15团委活动总结
2014/03/16 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
2014最新实习证明模板
2014/10/02 职场文书
工伤私了协议书范本
2014/11/24 职场文书
2014年林业工作总结
2014/12/05 职场文书
党员评议自我评价
2015/03/03 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
阳光体育运动标语口号
2015/12/26 职场文书
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers