惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MongoDB | Blog
MongoDB | Blog
博客园_首页
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
B
Blog RSS Feed
D
Docker
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
Recent Announcements
Recent Announcements
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
G
Google Developers Blog
V
V2EX
量子位
雷峰网
雷峰网
月光博客
月光博客
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog

博客园 - 匆匆

Grunt常见问题 JavaScript 设计模式 HTML5常见问题 改版提示,新手指南 前端开发规范文档 常用正则表达式 JavaScript String 对象扩展方法 JavaScript String 对象常用方法 JavaScript Array 对象扩展方法 JavaScript Array 对象常用方法 JavaScript 常见基础问题二 JavaScript 常见基础问题一 JavaScript与网页性能 跨浏览器的本地存储解决方案 页面中添加事件、阻止事件传播、事件删除 常用CSS书写技巧 Gridview用法大总结(牛年珍藏版) 总结一些常用功能源码 JS类库
一个小型的类库
匆匆 · 2014-03-10 · via 博客园 - 匆匆
/**
 * Created with IntelliJ IDEA.
 * User: zet
 * Date: 13-1-10
 * Time: 下午5:46
 * To change this template use File | Settings | File Templates.
 */
/**
* 字符串和日期工具
*/
(function (window, document) {
    String.prototype.Trim = function () {
        return this.replace(/(^\s*)|(\s*$)/g, "");
    };
    String.prototype.getBytesCount = function (str) {
        if (str == null) {
            return 0;
        } else {
            return str.replace(/[^\x00-\xff]/g, "**").length;
        }
    };
    Date.prototype.nextDate = function () {
        return new Date(this.getTime() + 86400000);
    };
    Date.prototype.getMyDay = function () {
        var temp = this.getDay();
        switch (temp) {
            case 0:
                return "周日";
            case 1:
                return "周一";
            case 2:
                return "周二";
            case 3:
                return "周三";
            case 4:
                return "周四";
            case 5:
                return "周五";
            case 6:
                return "周六";
            default:
                return '';
        }
    };
    Date.prototype.getMyMonth = function () {
        return (this.getMonth() + 1) + '月';
    };
    Date.prototype.toMyString = function () {
        var month = this.getMonth() + 1;
        return this.getFullYear() + '-' + (month >= 10 ? month : ('0' + month)) + '-' + this.getDate();
    };

})(window, document);
/**
 * 获取地理位置
 */
(function(window, document) {
    window.Drore = window.Drore || {};
    var nav = navigator;
    Drore.Location = Drore.Location || null;
    Drore.getLocation = function(cb) {
        var pos = null;
        if (nav.geolocation) {
            nav.geolocation.getCurrentPosition(function(position) {
                pos = {
                    lat: position.coords.latitude,
                    lon: position.coords.longitude
                }
                cb(pos);
            }, function() {
                console.log('千岛湖旅游客户端提示您:获取您的位置信息失败!');
                cb(pos);
            }, {
                timeout: 3000
            });
        } else {
            alert('您的浏览器不支持定位!');
            cb(pos);
        }
    };
})(window, document);
/**
 * ajax and html help function
 */
(function(window, document) {
    window.Drore = window.Drore || {};
    var head = document.getElementsByTagName('head')[0],
        i,
        imgCache = document.createElement('img');
    Drore.importJs = function(url, cb, charset) {
        var s = document.createElement("script");
        s.src = url;
        if (charset) {
            s.charset = charset
        }
        s.onload = s.onreadystatechange = function() {
            if (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete') {
                s.onload = s.onreadystatechange = null;
                this.parentNode.removeChild(this);
                if (cb) {
                    cb(true)
                }
            };
        };
        s.onerror = function() {
            this.onload = this.onerror = null;
            this.parentNode.removeChild(this);
            if (cb) {
                cb(false)
            }
        };
        head.appendChild(s)
    };
    Drore.importCSS = function(url) {
        var link = document.createElement('link');
        link.setAttribute('rel', 'stylesheet');
        link.setAttribute('type', 'text/css');
        link.setAttribute('href', url);
        head.appendChild(link)
    };

    Drore.importMap = function(cb) {
        this.importCSS(window.Config.Map.cssUrl)
        this.importJs(window.Config.Map.jsUrl, cb);
    };
    
    Drore._paras = (function() {
        var url = window.location.href,
            start = url.indexOf("?") + 1,
            paras = {};
        if (start !== 0) {
            var queryString = url.substring(start);
            var paraNames = queryString.split("&");
            var arr = [],
                i = 0;
            for (; i < paraNames.length; i++) {
                arr = paraNames[i].split("=");
                if (i === paraNames.length - 1) {
                    var sIndex = arr[1].indexOf("#");
                    if (sIndex !== -1) {
                        arr[1] = arr[1].substring(0, sIndex);
                    }
                }
                paras[arr[0]] = arr[1]
            }
        }
        return paras
    })();
    Drore.getParameter = function(pName) {
        return Drore._paras[pName];
    };
    Drore.getReqParams = function(paramObj) {
        var arr = new Array();
        for (i in paramObj) {
            arr.push(i + '=' + paramObj[i]);
        }
        return arr.join('&');
    };
    Drore.loadImg = function(targetDom, url) {
        if (url.indexOf("undefined")!=-1) {
            targetDom.src = Config.ImgLazyLoading.errorUrl;
        }
        else {
            var img = imgCache.cloneNode(true);
            targetDom.src = Config.ImgLazyLoading.loadingUrl;
            img.src = url + "_192X0_70.jpg";
            img.onload = function() {
                targetDom.src = url + "_192X0_70.jpg";
                img.onload = null;
                img.onerror = null;
                img = null;
            }
            img.onerror = function() {
                targetDom.src = url; 
                img.onload = null;
                img.onerror = null;
                img = null;
            }
        }
        
    };
    Drore.loadBigImg = function(targetDom, url) {
        var img = imgCache.cloneNode(true);
        targetDom.src = Config.ImgLazyLoading.loadingUrl;
        img.src = url;
        img.onload = function() {
            targetDom.src = url;
            img.onload = null;
            img.onerror = null;
            img = null;
        }
        img.onerror = function() {
            targetDom.src = Config.ImgLazyLoading.errorUrl;
            img.onload = null;
            img.onerror = null;
            img = null;
        }
    };
})(window, document);
/**
 * 本地缓存
 */
(function(window) {
    window.Drore = window.Drore || {};
    window.Drore.storage = {
        set: function(key, value) {
            window.localStorage.setItem(key, value);
        },
        get: function(key) {
            return window.localStorage.getItem(key);
        }
    };
})(window);
/**
 * dom 操作
 */
(function(document, window) {
    window.Drore = window.Drore || {};
    Drore.$ = function (id) {
        return "string" == typeof id ? document.getElementByI(id) : id;
    };
})(document, window);
/**
 * Config
 *
 * !!!!
 *  如果前端页面和服务器部署在不同的域名下,那么Safari浏览器登录和注册就会出错!!
 */
(function() {
    window.Config = {
        Map: {
            cssUrl: 'http://api.map.baidu.com/res/14/bmap.css',
            jsUrl: 'http://api.map.baidu.com/getscript?v=1.4&key=&services=&t=20130219081854'
        },
        APIUrl: {
            host: 'http://api.weyoo.cn',
            // host: 'http://192.168.16.239',
            // port: '8080',
            port: "80",
            imageHost: 'http://img.weyoo.cn',

            //首页广告
            indexAd: function(paramObj) {
                return this.host + ':' + this.port + '/advert/detail.htm?' + Drore.getReqParams(paramObj);
            },

            //酒店列表
            hotelUrl: function(paramObj) {
                return this.host + ':' + this.port + '/hotel/list.htm?' + Drore.getReqParams(paramObj);
            },

            //没房型的酒店信息
            hotelInfo: function(paramObj) {
                return this.host + ':' + this.port + '/hotel/detail.htm?' + Drore.getReqParams(paramObj);
            },

            //酒店预订
            hotelBook: function(paramObj) {
                return this.host + ':' + this.port + '/hotel/book.htm?' + Drore.getReqParams(paramObj);
            },

            //酒店预订支付
            hotelBookPay: function(paramObj) {
                return this.host + ':' + this.port + '/hotel/book_pay.htm?' + Drore.getReqParams(paramObj);
            },

            //订单支付
            pay: function(paramObj) {
                return this.host + ':' + this.port + '/pay/pay_order.htm?' + Drore.getReqParams(paramObj);
            },

            //有房型的酒店信息
            hotelDetail: function(paramObj) {
                return this.host + ':' + this.port + '/hotel/room.htm?' + Drore.getReqParams(paramObj);
            },

            //酒店评价提交
            hotelCommentSubmit: function(paramObj) {
                return this.host + ':' + this.port + '/comment/save_hotel.htm?' + Drore.getReqParams(paramObj);
            },

            //酒店房型评价提交
            RoomCommentSubmit: function(paramObj) {
                return this.host + ':' + this.port + '/comment/save_hotel_room.htm?' + Drore.getReqParams(paramObj);
            },

            //景区列表
            viewUrl: function(paramObj) {
                return this.host + ':' + this.port + '/scenic/list.htm?' + Drore.getReqParams(paramObj);
            },

            //景点详情
            pointDetail: function(paramObj) {
                return this.host + ':' + this.port + '/scenic/pointdetail.htm?' + Drore.getReqParams(paramObj);
            },

            // 景点列表
            pointList: function(paramObj) {
                return this.host + ':' + this.port + '/scenic/pointlist.htm?' + Drore.getReqParams(paramObj);
            },

            //景区详情
            viewDetail: function(paramObj) {
                return this.host + ':' + this.port + '/scenic/detail.htm?' + Drore.getReqParams(paramObj);
            },

            //景点评价提交
            pointCommentSubmit: function(paramObj) {
                return this.host + ':' + this.port + '/comment/save_scenic_point.htm?' + Drore.getReqParams(paramObj);
            },

            //景点评论列表
            pointCommentList: function(paramObj) {
                return this.host + ':' + this.port + '/comment/scenic_point_list.htm?' + Drore.getReqParams(paramObj);
            },

            // 景区评论提交
            scenicCommentSubmit: function(paramObj) {
                return this.host + ':' + this.port + '/comment/save_scenic.htm?' + Drore.getReqParams(paramObj);
            },

            //美食列表
            cateringUrl: function(paramObj) {
                return this.host + ':' + this.port + '/provider/list.htm?' + Drore.getReqParams(paramObj);
            },


            //娱乐列表
            recreatUrl: function(paramObj) {
                return this.host + ':' + this.port + '/provider/list.htm?' + Drore.getReqParams(paramObj);
            },

            //商家详情
            providerDetail: function(paramObj) {
                return this.host + ':' + this.port + '/provider/detail.htm?' + Drore.getReqParams(paramObj);
            },

            //特产店列表
            specialtyUrl: function(paramObj) {
                return this.host + ':' + this.port + '/provider/list.htm?' + Drore.getReqParams(paramObj);
            },

            //商品类别列表
            goodsTypeList: function(paramObj) {
                return this.host + ':' + this.port + '/goods_type/list.htm?' + Drore.getReqParams(paramObj);
            },

            //商品类别详情
            goodsTypeDetail: function(paramObj) {
                return this.host + ':' + this.port + '/goods_type/detail.htm?' + Drore.getReqParams(paramObj);
            },

            //商品列表
            goodsUrl: function(paramObj) {
                return this.host + ':' + this.port + '/goods/list.htm?' + Drore.getReqParams(paramObj);
            },

            //商品预订
            goodsBook: function(paramObj) {
                return this.host + ':' + this.port + '/goods/book.htm?' + Drore.getReqParams(paramObj);
            },

            // 门票详情
            ticketsDetail: function(paramObj) {
                return this.host + ':' + this.port + '/scenic/ticketdetail.htm?' + Drore.getReqParams(paramObj);
            },

            // 门票预订
            ticketsBook: function(paramObj) {
                return this.host + ':' + this.port + '/scenic/book.htm?' + Drore.getReqParams(paramObj);
            },

            // 订单详情
            bookDetail: function(paramObj) {
                return this.host + ':' + this.port + '/order/view.htm?' + Drore.getReqParams(paramObj);
            },

            // 取消订单
            cancelOrder: function(paramObj){
                return this.host + ':' + this.port + '/order/cancel.htm?' + Drore.getReqParams(paramObj);
            },

            // 删除订单
            delOrder: function(paramObj){
                return this.host + ':' + this.port + '/order/delete.htm?' + Drore.getReqParams(paramObj);
            },

            //商品详情
            goodsDetail: function(paramObj) {
                return this.host + ':' + this.port + '/goods/detail.htm?' + Drore.getReqParams(paramObj);
            },

            //商品评价提交
            goodsCommentSubmit: function(paramObj) {
                return this.host + ':' + this.port + '/comment/save_goods.htm?' + Drore.getReqParams(paramObj);
            },

            //商家评价提交
            shopCommentSubmit: function(paramObj) {
                return this.host + ':' + this.port + '/comment/save_provider.htm?' + Drore.getReqParams(paramObj);
            },
            //商家类别
            shopType: function(paramObj) {
                return this.host + ':' + this.port + '/provider/type.htm?' + Drore.getReqParams(paramObj);
            },

            //注册
            registerUrl: function(paramObj) {
                return this.host + ':' + this.port + '/mem/reg.htm?' + Drore.getReqParams(paramObj);
            },
            // 注册请求验证码
            registerCodeRequest: function(paramObj) {
                return this.host + ':' + this.port + '/mem/reg_get_code.htm?' + Drore.getReqParams(paramObj);
            },
            //验证验证码
            codeValidate: function(paramObj) {
                return this.host + ':' + this.port + '/mem/code_validate.htm?' + Drore.getReqParams(paramObj);
            },
            //登陆
            loginUrl: function(paramObj) {
                return this.host + ':' + this.port + '/mem/login.htm?' + Drore.getReqParams(paramObj);
            },
            // 重置密码请求验证码
            resetCodeRequest: function(paramObj) {
                return this.host + ':' + this.port + '/mem/password_reset_code.htm?' + Drore.getReqParams(paramObj);
            },
            // 重置密码校验验证码
            resetCodeValidate: function(paramObj) {
                return this.host + ':' + this.port + '/mem/password_code_validate.htm?' + Drore.getReqParams(paramObj);
            },
            // 重置密码
            resetPassword: function(paramObj) {
                return this.host + ':' + this.port + '/mem/password_reset.htm?' + Drore.getReqParams(paramObj);
            },
            //交通
            trafficUrl: function(paramObj) {
                return this.host + ':' + this.port + '/serv/traffic_type.htm?' + Drore.getReqParams(paramObj);
            },
            //交通列表
            trafficList: function(paramObj) {
                return this.host + ':' + this.port + '/serv/traffic_list.htm?' + Drore.getReqParams(paramObj);
            },
            //交通详情
            trafficDetail: function(paramObj) {
                return this.host + ':' + this.port + '/serv/traffic_detail.htm?' + Drore.getReqParams(paramObj);
            },
            //便民信息类别
            bianminIndex: function(paramObj) {
                return this.host + ':' + this.port + '/serv/conv_type.htm?' + Drore.getReqParams(paramObj);
            },
            //便民信息列表
            bianminList: function(paramObj) {
                return this.host + ':' + this.port + '/serv/conv_list.htm?' + Drore.getReqParams(paramObj);
            },
            // 便民信息详情
            bianminDetail: function(paramObj) {
                return this.host + ':' + this.port + '/serv/conv_detail.htm?' + Drore.getReqParams(paramObj);
            },
            //用户中心-个人资料查询
            getUserInfo: function(paramObj) {
                return this.host + ':' + this.port + '/mem/self_info.htm?' + Drore.getReqParams(paramObj);
            },
            //用户中心-修改密码
            pwdUpdate: function(paramObj) {
                return this.host + ':' + this.port + '/mem/password_update.htm?' + Drore.getReqParams(paramObj);
            },
            //用户中心-头像修改
            headImgUpdate: function(paramObj) {
                return this.host + ':' + this.port + '/mem/update_head_img.htm?' + Drore.getReqParams(paramObj);
            },
            //用户中心-背景墙设置
            setBackground: function(paramObj) {
                return this.host + ':' + this.port + '/mem/set_bground_wall.htm?' + Drore.getReqParams(paramObj);
            },
            //用户中心-注销登录
            logout: function(paramObj) {
                return this.host + ':' + this.port + '/mem/logout.htm?' + Drore.getReqParams(paramObj);
            },
            //用户中心-个人资料更新
            setUserInfo: function(paramObj) {
                return this.host + ':' + this.port + '/mem/update_self_info.htm?' + Drore.getReqParams(paramObj);
            },
            //用户中心-评论列表
            getCommentList: function(paramObj) {
                return this.host + ':' + this.port + '/comment/self_list.htm?' + Drore.getReqParams(paramObj);
            },
            //用户中心-删除评论
            deleteComment: function(paramObj) {
                return this.host + ':' + this.port + '/comment/delete.htm?' + Drore.getReqParams(paramObj);
            },

            //用户中心-我的咨询列表
            getMyHelpList: function(paramObj) {
                return this.host + ':' + this.port + '/serviceform/my_help_list.htm?' + Drore.getReqParams(paramObj);
            },

            //用户中心-我的咨询列表
            getMyComplaintList: function(paramObj) {
                return this.host + ':' + this.port + '/serviceform/my_complaint_list.htm?' + Drore.getReqParams(paramObj);
            },

            //用户中心-咨询\投诉删除
            deleteService: function(paramObj) {
                return this.host + ':' + this.port + '/serviceform/delete.htm?' + Drore.getReqParams(paramObj);
            },

            //用户中心-订单列表
            getOrderList: function(paramObj) {
                return this.host + ':' + this.port + '/order/my_order.htm?' + Drore.getReqParams(paramObj);
            },

            // 用户中心-他人相册列表
            getAlbumList: function(paramObj) {
                return this.host + ':' + this.port + '/mem/album/list.htm?' + Drore.getReqParams(paramObj);
            },

            // 用户中心-我的相册列表
            getMyAlbumList: function(paramObj) {
                return this.host + ':' + this.port + '/mem/album/self.htm?' + Drore.getReqParams(paramObj);
            },

            // 用户中心-相册图片列表
            getPhotoList: function(paramObj) {
                return this.host + ':' + this.port + '/mem/photo/list.htm?' + Drore.getReqParams(paramObj);
            },

            // 用户中心-相册图片上传
            photoUpload: function(paramObj) {
                return this.host + ':' + this.port + '/mem/photo/upload_img.htm?' + Drore.getReqParams(paramObj);
            },

            // 用户中心-更新图片信息
            photoUpdate: function(paramObj) {
                return this.host + ':' + this.port + '/mem/photo/update.htm?' + Drore.getReqParams(paramObj);
            },

            // 用户中心-相册图片删除
            photoDelete: function(paramObj) {
                return this.host + ':' + this.port + '/mem/photo/delete.htm?' + Drore.getReqParams(paramObj);
            },

            //卖家评论列表(景区,酒店,商家)
            commentList: function(paramObj) {
                return this.host + ':' + this.port + '/comment/seller_list.htm?' + Drore.getReqParams(paramObj);
            },

            //酒店房型评论列表
            roomCommentList: function(paramObj) {
                return this.host + ':' + this.port + '/comment/room_list.htm?' + Drore.getReqParams(paramObj);
            },

            //商品评论列表
            goodsCommentList: function(paramObj) {
                return this.host + ':' + this.port + '/comment/goods_list.htm?' + Drore.getReqParams(paramObj);
            },

            //评分项配置查询
            getScoreSetting: function(paramObj) {
                return this.host + ':' + this.port + '/comment/get_score_setting.htm?' + Drore.getReqParams(paramObj);
            },

            //攻略列表
            getGuideList: function(paramObj) {
                return this.host + ':' + this.port + '/guide/list.htm?' + Drore.getReqParams(paramObj);
            },

            //攻略详情
            getGuideDetail: function(paramObj) {
                return this.host + ':' + this.port + '/guide/detail.htm?' + Drore.getReqParams(paramObj);
            },

            //咨询列表
            getHelpList: function(paramObj) {
                return this.host + ':' + this.port + '/serviceform/help_list.htm?' + Drore.getReqParams(paramObj);
            },

            //投诉列表
            getComplaintList: function(paramObj) {
                return this.host + ':' + this.port + '/serviceform/complaint_list.htm?' + Drore.getReqParams(paramObj);
            },

            //咨询\投诉保存
            serviceSave: function(paramObj) {
                return this.host + ':' + this.port + '/serviceform/save.htm?' + Drore.getReqParams(paramObj);
            },

            //咨询\投诉详情
            getServiceDetail: function(paramObj) {
                return this.host + ':' + this.port + '/serviceform/detail.htm?' + Drore.getReqParams(paramObj);
            },
            //会员资料查询
            getUserInfoById: function(paramObj) {
                return this.host + ':' + this.port + '/mem/info_detail.htm?' + Drore.getReqParams(paramObj);
            },
            //便民信息
            getConvenienceList: function(paramObj) {
                return this.host + ':' + this.port + '/serv/conv_list.htm?' + Drore.getReqParams(paramObj);
            },
            // 新闻资讯列表
            newsList: function(paramObj) {
                return this.host + ':' + '/article/arti_list.htm?' + Drore.getReqParams(paramObj);
            },
            // 新闻资讯详情
            newsDetail: function(paramObj){
                return this.host + ':' + '/article/detail.htm?' + Drore.getReqParams(paramObj);
            },
            // 特色菜列表
            specialDish: function(paramObj){
                return this.host + ':' + '/provider/dish_list.htm?' + Drore.getReqParams(paramObj);
            },
            // 特色菜详情
            specialDishDetail: function(paramObj){
                return this.host + ':' + '/provider/dish_detail.htm?' + Drore.getReqParams(paramObj);
            },
            // 休闲点赞
            xiuxianZan: function(paramObj){
                return this.host + ':' + '/scenic/view.htm?' + Drore.getReqParams(paramObj);
            },
            // 特产点赞
            specialZan: function(paramObj){
                return this.host + ':' + '/goods_type/view.htm?' + Drore.getReqParams(paramObj);
            }
        },
        ImgLazyLoading: {
            loadingUrl: '', //'/img/loading.gif',
            errorUrl: '/img/default.png'
        }
    }
})();
/**
* 登陆及异常处理
*/
(function(window, document) {
    window.Drore = window.Drore || {};
    window.Drore.Validate = {
        phone: /^1[3|4|5|8][0-9]{9}$/,
        password: /^[a-z0-9A-Z_]{6,12}$/,
        name: /^[\u4e00-\u9fa5\w]{2,10}$/
    };
    //异常处理
    Drore.exception = function(type) {
        switch (type) {
            case 2:
                alert("网络问题,请稍候再试!");
                break;
            case 3:
                alert("网络问题,请稍候再试!");
                break;
            case 4:
                if (confirm("您还未登录,是否先登录!")) {
                    Drore.pointLogin();
                }
                break;
        }
    }
    //记录当前url并指向登录
    Drore.pointLogin = function() {
        var url = location.href,
            requestURINo = "requestURINo" + Math.random();
        Drore.storage.set(requestURINo, url);
        location.assign("/user/login.html?requestURINo=" + requestURINo);
    }
})(window, document);