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 相关文章推荐
效率高的Javscript字符串替换函数的benchmark
Aug 02 Javascript
javascript操作cookie的文章(设置,删除cookies)
Apr 01 Javascript
javascript整除实现代码
Nov 23 Javascript
基于jquery的不规则矩形的排列实现代码
Apr 16 Javascript
浅谈Unicode与JavaScript的发展史
Jan 19 Javascript
jQuery设置和移除文本框默认值的方法
Mar 09 Javascript
浅析Javascript中bind()方法的使用与实现
May 30 Javascript
JS判断浏览器是否安装flash插件的简单方法
Sep 13 Javascript
深入理解requestAnimationFrame的动画循环
Sep 20 Javascript
简单谈谈Vue 模板各类数据绑定
Sep 25 Javascript
利用js定义一个导航条菜单
Mar 14 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
Jun 07 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
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
php时间计算相关问题小结
2016/05/09 PHP
php创建多级目录与级联删除文件的方法示例
2019/09/12 PHP
JS DOM 操作实现代码
2010/08/01 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
2018/08/25 Javascript
vue基于viewer实现的图片查看器功能
2019/04/12 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
Python 文件读写操作实例详解
2014/03/12 Python
python实现合并两个数组的方法
2015/05/16 Python
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
Django中Model的使用方法教程
2018/03/07 Python
在cmd命令行里进入和退出Python程序的方法
2018/05/12 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
详解python datetime模块
2020/08/17 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
英国网上超市:Ocado
2020/03/05 全球购物
介绍一下木马病毒的种类
2015/07/26 面试题
大学毕业生通用自荐信范文
2013/10/31 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
获奖感言一句话
2015/07/31 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis