debug

用于调试的脚本库

目前为 2017-11-24 提交的版本。查看 最新版本

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/34143/232856/debug.js

  1. // ==UserScript==
  2. // @name debug
  3. // @namespace https://github.com/yeomanye
  4. // @version 0.6.1
  5. // @include *://*
  6. // @description 用于调试的脚本库
  7. // @author Ming Ye
  8. // ==/UserScript==
  9.  
  10. (function(context) {
  11. var debugD = true; //debug默认设置
  12. //创建分组打印
  13. var consoleFactory = function(groupName, styleStr, type, debugMode) {
  14. debugMode = (debugMode === undefined) || debugD;
  15. type = type || 'log';
  16. /**
  17. * 创建的分组打印日志
  18. * @param {bool} debugMode 是否启用日志
  19. */
  20. var log = function(debugMode) {
  21. //初始化操作
  22. if (!log.nFirst) {
  23. log.nFirst = true;
  24. log.debugMode = debugMode;
  25. log.groupName = log.groupName || groupName;
  26. console.groupEnd();
  27. console.group('%c' + log.groupName, styleStr);
  28. }
  29. if (log.debugMode) {
  30. var argArr = Array.prototype.slice.apply(arguments);
  31. console[type].apply(null, argArr);
  32. }
  33. }
  34. /**
  35. * 打印对象
  36. * @param {string} desc 对象描述
  37. * @param {object} obj 对象数据
  38. */
  39. log.logObj = function(desc, obj, debugMode) {
  40. debugMode = (debugMode === undefined) || this.debugMode;
  41. if (debugMode) {
  42. console.group('%c' + desc, 'color:green;font-size:16px');
  43. console.log(obj);
  44. console.groupEnd();
  45. }
  46. }
  47. /**
  48. * 打印数组
  49. * @param {string} desc 数组描述
  50. * @param {array} arr 数组类型
  51. */
  52. log.logArr = function(desc, arr, debugMode) {
  53. debugMode = (debugMode === undefined) || this.debugMode;
  54. if (debugMode) {
  55. console.group('%c' + desc, 'color:blue;font-size:16px');
  56. console.table(arr);
  57. console.groupEnd();
  58. }
  59. }
  60. /**
  61. * 重置分组日志
  62. * @param {string} groupName 日志名
  63. * @param {Boolean} debugMode 是否启用日志
  64. */
  65. log.reset = function(groupName, debugMode) {
  66. log.nFirst = false;
  67. log.debugMode = (debugMode === undefined) || true;
  68. log.groupName = groupName || this.groupName;
  69. }
  70. /**
  71. * 断言
  72. * @param {bool} expr 表达式
  73. * @param {string} msg 消息
  74. * @param {bool} debugMode 是否启用
  75. */
  76. log.assert = function(expr,msg,debugMode){
  77. debugMode = (debugMode === undefined) || this.debugMode;
  78. if(debugMode){
  79. console.assert(expr,msg);
  80. }
  81. }
  82. return log;
  83. }
  84.  
  85. // 当参数为true时开启调试
  86. var debugTrue = function(debugMode) {
  87. debugMode = (debugMode === undefined) || debugD;
  88. return function() {
  89. if (debugMode) debugger;
  90. }
  91. }
  92.  
  93. context.myDebugger = {
  94. consoleFactory: consoleFactory,
  95. debugTrue: debugTrue
  96. };
  97.  
  98. })(window);