JAVASCRIPT   65

tools.js

Guest on 9th October 2021 04:39:23 PM

  1. (function(mod) {
  2.   if (typeof exports == "object" && typeof module == "object") // CommonJS 规范
  3. 范
  4.     module.exports = mod;
  5.   else if (typeof define == "function" && defin// AMD 规范
  6. 规范
  7.     return define(['jquery','jquery.validate'],// Plain browser env 浏览器
  8. env 浏览器
  9.     this.tools = mod();
  10. })(function() {
  11.         var tools = {};
  12.  
  13.         tools.check_cookie = function(){
  14.                 if(window.navigator.cookieEnabled)
  15.                         return true;
  16.                 else{
  17.                         alert("浏览器配置错误,Cookie不可用!");
  18.                         return false;
  19.                 }
  20.         //æ­¤ cookie 将被保存 30 天
  21. name,value){
  22.            var Days //new Date("December 31, 9998");
  23. «ä¿å­˜ 30 天
  24.            var exp = new Date(); //new Date("December 31, 9998");
  25.            exp.setTime(exp.getTime() + Days*24*60*60*1000);
  26.            document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
  27.         };
  28.  
  29.         tools.get_cookie = function(name)
  30.         {
  31.                 var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"// var regexp = new RegExp("(?:^" + name + "|;\s*"+ name + ")=(.*?)(?:;|$)", "g");
  32.         /// var result = regexp.exec(document.cookie);
  33. s*// return (result === null) ? null : result[1];
  34. t = regexp.exec(document.cookie);
  35.                 // return (result === null) ? null : result[1];
  36.         };
  37.  
  38.         tools.del_cookie = function(name)
  39.         {
  40.                 var exp = new Date();
  41.                 exp.setTime(exp.getTime() - 1);
  42.                 var cval=getCookie(name);
  43.                 if(cval!==// 检测空对象
  44. c// 空则返回true
  45. al+";expires="+exp.toGMTString();
  46.                 }
  47.         };
  48.  
  49.         // 检测空对è±// 等同于 value === undefined || value === null
  50. yValue = function(value) {
  51.                 var type;
  52.             if(value === null) { // 等同于 value === undefined || value === null
  53.                 return true;
  54.             }
  55.             type = Object.prototype.toString.call(value).slice(8, -1);
  56.             switch(type) {
  57. // return $.isEmptyObject(value);
  58. !!$.trim(value);
  59.                 case 'Array':
  60.                 return !value.length;
  61.                 case 'Object':
  62.                 // return $.isEmptyObject(value);
  63.                 return !value.length;
  64.                 default:
  65.                 return false;
  66.             }
  67.         };
  68.  
  69.         tools.isEmpty = function(v){
  70.                 if (v instanceof String) {
  71.                         var r = v === {;
  72.                         return r.test(v);
  73.                 }else if(v instanceof Array){
  74.                         return !v.length;
  75.                 }else if(v instanceof Object){
  76.                         return v === {};
  77.                 }else{
  78.                         return false;
  79.                 }
  80.         }// 解析URL路径
  81. function(value){
  82.                 if (typeof(value) == "undefined") {
  83.                         return false;
  84.                 }else{
  85.                         return true;
  86.                 }
  87.         };
  88.  
  89.         // 解析URL路径
  90.         tools.parseURL = function(url) {
  91.                 var a =  document.createElement('a');
  92.                 a.href = url;
  93.                 return {
  94.                         source: url,
  95.                         protocol: a.protocol.replace(':',').split('st: a.hostname,
  96.                         port: a.port,
  97.                         query: a.search,
  98.                         params: (function(){
  99.                                 var ret = [],
  100.                                 seg = a.search.replace(                 re,'').split('&'),
  101.                                 len = seg.length, i = 0, s;
  102.                                 for (;i<len;i++) {
  103.                                         if (!seg[i]) { continue; }
  104.                                         s = seg[i].split('=');
  105.                                         ret[i] = {"key":s[0],"val":s[1]};
  106.                                 }
  107.                                 return ret;
  108.                         })(),
  109.                         file: (a.pathname.match(/tps?:\/\/[^\/]+) || [,''])[1],
  110.                         hash: a.hash.replace('#',''),
  111.                         path//,'').split('/')
  112. ce(;
  113.         };
  114.  
  115.         //,'/$1'),
  116.                         relative: (a.hr/**
  117.          * å›¾ç‰‡å¤´æ•°æ®åŠ è½½å°±ç»ªäº‹ä»¶
  118.          * @version     2011.05.27
  119.          * @author      TangBin
  120.          * @see         http://www.planeart.cn/?p=1121
  121.          * @param       {String}        图片路径
  122.          * @param       {Function}      尺寸就绪
  123.          * @param       {Function}      åŠ è½½å®Œæ¯• (可选)
  124.          * @param       {Function}      åŠ è½½é”™è¯¯ (可选)
  125.          * @example imgReady('http://www.google.com.hk/intl/zh-CN/images/logo_cn.png', function () {
  126.                         alert('size ready: width=' + this.width + '; height=' + this.height);
  127.                 });
  128.          */)
  129.          * @param       {Function}      åŠ è½½é”™è¯¯ (可选)
  130.          * @exampl// 用来执行队列
  131. .google.com.hk/intl/zh-CN/images/logo_cn.png', function () {
  132.                         alert('size ready: width=' + this.width + '; height=' + this.height);
  133.                 });
  134.          */
  135.         tools.imgReady = (fu// 停止所有定时器队列
  136. var intervalId = null;
  137.  
  138.                 // 用来执行队列
  139.                 var tick = function () {
  140.                         var i = 0;
  141.                         for (; i < list.length; i++) {
  142.                                 list[i].end ? list.splice(i--, 1) : list[i]();
  143.                         }
  144.                         !list.length && stop();
  145.                 // 如果图片被缓存,则直接返回缓存数据
  146. 队列
  147.                 var stop = function () {
  148.                         clearInterval(intervalId);
  149.                         intervalId = null;
  150.                 };
  151.  
  152.                 return function (url, ready, load, err// åŠ è½½é”™è¯¯åŽçš„äº‹ä»¶
  153.  height, newWidth, newHeight,
  154.                                 img = new Image();
  155.  
  156.                         img.src = url;
  157.  
  158.                         // 如果图片被缓存,åˆ// 图片尺寸就绪
  159. ›žç¼“存数据
  160.                         if (img.complete) {
  161.                                 ready.call(img);
  162.                                 load && load.call(img);
  163.                                 return;
  164.                         }
  165.  
  166.                         width = img.wi// å¦‚æžœå›¾ç‰‡å·²ç»åœ¨å…¶ä»–åœ°æ–¹åŠ è½½å¯ä½¿ç”¨é¢ç§¯æ£€æµ‹
  167. Žçš„事件
  168.                         img.onerror = function () {
  169.                                 error && error.call(img);
  170.                                 onready.end = true;
  171.                                 img = // å®Œå…¨åŠ è½½å®Œæ¯•çš„äº‹ä»¶
  172. ;
  173.                         };
  174.  
  175.                         // 图片å°// onload在定时器时间差范围内可能比onreadyå¿«
  176. h = // 这里进行检查并保证onready优先执行
  177. Width !== width || newHeight !== height ||
  178.                                         // 如æž// IE gif动画会循环执行onload,置空onload即可
  179. ¹åŠ 载可使用面积检// åŠ å…¥é˜Ÿåˆ—ä¸­å®šæœŸæ‰§è¡Œ
  180. t > 1024
  181.                                 ) {
  182.                                         ready.call(img);
  183.                                         onready// æ— è®ºä½•æ—¶åªå…è®¸å‡ºçŽ°ä¸€ä¸ªå®šæ—¶å™¨ï¼Œå‡å°‘æµè§ˆå™¨æ€§èƒ½æŸè€—
  184. 毕的事件
  185.                         img.onload = function () {
  186.                                 // onload在定// ä¸€éƒ¨åŠ è½½é¡µé¢å¯¹åˆ†é¡µæŒ‰é’®å¤„ç† ,id 带有 #
  187. ¯èƒ½æ¯”onreadyå¿«
  188.                                 // 这里进行检查并保证onready优先执行
  189.                                 !onready.end && onready();
  190.                                 load && load.call(img);
  191.                                 // IE gif动画会循环执行onload,置空onload即可
  192.                                 img = img.onload = img.onerror = null;
  193.                         };
  194.  
  195.                         // åŠ å…¥é˜Ÿåˆ—ä¸­å®šæœŸæ‰§è¡Œ
  196.                         if (!onready.end) {
  197.                                 list.push(onready);
  198.                                 // æ— è®ºä½•æ—¶åªå…è®¸å‡ºçŽ°ä¸€// $(el).attr('href',"javascript:tools.load_page('"+elhref+"','"+nodeId+"')");
  199. Ÿè€—
  200.                                 if (intervalId === null) intervalId = setInterval(tick, 40);
  201.                         };
  202.                 };
  203.         })();
  204.  
  205.         // ä¸€éƒ¨åŠ è½½é¡µé¢å¯¹åˆ†é¡µæŒ‰é’®å¤„ç† ,id 带有 #
  206.         tools.load_page = function(_url,nodeId) {
  207.                 var _load_page =/**
  208.          * @brief 创建表单验证
  209.          * 注意引用  jquery.validate.js å’Œ jquery.validate.lang.cn.js
  210.          * @param frm  è¡¨å• Id
  211.          * @param rules 验证规则
  212.          */(data);
  213.                                 $(nodeId+" .pagination a").each(function(index, el) {
  214.                                         var elhref = $(el).attr('href');
  215.                                         if ( elhref == '#' ) {
  216.                                                 elhref = __url;
  217.                                                 $(el).attr('data-href',__// 忽略
  218.         }else{
  219.                                                 $(el).attr('data-href',elhref);
  220.                                         }
  221.                                         $(el).attr('href','javascript:void(0)');
  222.                                         // $(el).attr('href',"javascript:tools.load_page('"+elhref+"','"+nodeId+"')");
  223.                                 });
  224.                         })
  225.                         .fail(function() {
  226.                                 console.log("error");
  227.                         })
  228.                         .always(function() {
  229.                                 console.log("complete");
  230.                         });
  231.                 };
  232.  
  233.                 _load_page(_url);
  234.  
  235.                 $(nodeId).delegate('a[data-href]','click',function(){
  236.                         _load_page($(this).attr('data-href'));
  237.                 });
  238.         };
  239.  
  240.  
  241.         /**
  242.          * @brief 创建表单验证
  243.          * 注意引用  jquery.validate.js å’Œ jquery.validate.lang.cn.js
  244.          * @param frm  è¡¨å• Id
  245.          * @param rules 验证规则
  246.          */
  247.         tools.make_validate = function(frm,rules,messages,inline){
  248.                 if (inline === 0) {
  249.                         inline = "block";
  250.                 }else{
  251.                         inline = "inline";
  252.                 }
  253.                 $('#'+frm).validate({
  254.                         ignore/**
  255.          * @brief 创建表单验证
  256.                       带有返回函数, 可以验证后直接用ajax处理
  257.          * 注意引用  jquery.validate.js å’Œ jquery.validate.lang.cn.js
  258.          * @param frm  è¡¨å• Id
  259.          * @param rules 验证规则
  260.          */ {
  261.                                 $(element).parents('.control-group').removeClass('success').addClass('error');
  262.                                 $(element).removeClass('success').addClass('error');
  263.                                 $(element).nextAll('span.validate').remove();
  264.                         },
  265.                         u// 忽略
  266. : function(element, errorClass, validClass) {
  267.                                 $(element).parents('.control-group').removeClass('error').addClass('success');
  268.                                 $(element).removeClass('error').addClass('success');
  269.                                 $(element).nextAll('span.validate').remove();
  270.                         },
  271.                         errorPlacement: function(error, element) {
  272.                                 if (inline == "block") {
  273.                                         error.appendTo(element.parents(".control-group"));
  274.                                 }else{
  275.                                         element.after(error);
  276.                                 }
  277.                         }
  278.                 });
  279.         };
  280.  
  281.         /**
  282.          * @brief 创建表单验证
  283.                       带有返回函数, 可以验证后直接用ajax处理
  284.          * 注意引用  jquery.validate.js å’Œ jquery.validate.lang.cn.js
  285.          * @param frm  è¡¨å• Id
  286.          * @param rules 验证规则
  287.          */
  288.         tools.make_validate_submit = function(frm,rules,messages,submit_fun,inline){
  289.                 if (inline === 0) {
  290.                         inline = "block";
  291.                 }else{
  292.                         inline

Raw Paste


Login or Register to edit or fork this paste. It's free.