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 相关文章推荐
event对象的方法 兼容多浏览器
Jun 27 Javascript
js 判断浏览器使用的语言示例代码
Mar 22 Javascript
JavaScript window.location对象
Nov 14 Javascript
jQuery动态效果显示人物结构关系图的方法
May 07 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
Jan 22 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
Apr 26 Javascript
JavaScript必看小技巧(必看)
Jun 07 Javascript
vue-router跳转页面的方法
Feb 09 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
Apr 12 Javascript
详解.vue文件解析的实现
Jun 11 Javascript
基于 jQuery 实现键盘事件监听控件
Apr 04 jQuery
浅谈vuex中store的命名空间
Nov 08 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漏洞全解(详细介绍)
2012/11/13 PHP
PHP异常处理浅析
2015/05/12 PHP
Yii扩展组件编写方法实例分析
2015/06/29 PHP
var与Javascript变量隐式声明
2009/09/17 Javascript
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
jquery删除数据记录时的弹出提示效果
2014/05/06 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
简单实现js浮动框
2016/12/13 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
介绍Python中内置的itertools模块
2015/04/29 Python
深入解析Python编程中super关键字的用法
2016/06/24 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
高中历史教学反思
2014/02/08 职场文书
企业活动策划方案
2014/06/02 职场文书
金融管理专业求职信
2014/07/10 职场文书
2014年党建工作总结
2014/11/11 职场文书
社区服务活动报告
2015/02/05 职场文书
债务纠纷代理词
2015/05/25 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL
python全面解析接口返回数据
2022/02/12 Python
Win11查看设备管理器
2022/04/19 数码科技