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 相关文章推荐
jquery.ajax之beforeSend方法使用介绍
Dec 08 Javascript
js实现每日自动换一张图片的方法
May 04 Javascript
vue2.0 中#$emit,$on的使用详解
Jun 07 Javascript
layui中layer前端组件实现图片显示功能的方法分析
Oct 13 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
Nov 30 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
Jun 12 Javascript
vue eslint简要配置教程详解
Jul 26 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
Nov 17 Javascript
详解js location.href和window.open的几种用法和区别
Dec 02 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
Jan 18 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
Jan 25 Javascript
React 并发功能体验(前端的并发模式)
Jul 01 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
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
php商品对比功能代码分享
2015/09/24 PHP
解析PHP之提取多维数组指定列的方法
2017/01/03 PHP
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
jquery实现多级下拉菜单的实例代码
2013/10/02 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
jQuery返回定位插件详解
2017/05/15 jQuery
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
Python Web框架Tornado运行和部署
2020/10/19 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
2016/06/13 Python
Python表示矩阵的方法分析
2017/05/26 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
《跨越百年的美丽》教学反思
2014/02/11 职场文书
2015年科室工作总结
2015/04/10 职场文书
2015年技术员工作总结
2015/04/10 职场文书
2015年市场部工作总结
2015/04/30 职场文书
建党伟业的观后感
2015/06/01 职场文书
SQL之各种join小结详细讲解
2021/08/04 MySQL