非实用性Js脚本 > 纯属玩乐
时间:2010-08-23 来源:那天
以前或者是现在都不怎么会调试Js,总是用alert打出信息,这种方法是有效的,当然也是最慢速的。就如老师说的,用printf调试也很便利,很实用。这个当然是指在没有调试工具或者是已经对语言纯熟,不会出现低级错误的前提之下。
总感觉用alert挺麻烦,跳出对话框,点击才能继续进行。如果能一次性打印出想打印的所有信息,是很合理的。那么想来想去,就写了个不怎么样的Js 类,其实Js本来就不是什么面向对象语言,只是很像而已。多的不说了,贴代码
var Debug = { _style : [["color", "#000000"], ["border-top", "5px solid #005EAC"], ["border-bottom", "5px solid #005EAC"], ["margin", "20px"], ["padding", "10px"], ["background-color", "#B8D4E8"], ["font-family", "arial"]], _keyWord: ["function", "document", "object", "toString", "nodeType", "nodeName", "{", "}", "className", "debug", "writeln", "window", "var"], _keyColor: ["red", "blue", "#345922", "#055444", "#888888", "#345922", "#005599", "#669988", "#559933"], _toStr : function () { var styleStr = ""; for (var i = 0; i < this._style.length; i++) styleStr += this._style[i][0] + ": " + this._style[i][1] + ";"; return styleStr; }, _markKeyWord: function (str) { if (typeof str != "string" && typeof str != "undefined" && str != null) if (str.toSource) str = str.toSource(); else if (str.toString) str = str.toString(); else str = typeof str; else if (typeof str == "string") for (var i = 0, j = 0;i < this._keyWord.length; j++, i++) { str = str.replace(eval("/(" + this._keyWord[i] + ")/ig"), "<font color='" + this._keyColor[j] + "'>$1</font>"); if (j >= this._keyColor.length) j = 0; } else str = typeof str; return str; }, writeln: function (str) { document.write('<pre><p style="'+ this._toStr() +'">' + this._markKeyWord(str)+ '</p></pre>'); } }; //test->Debug.writeln(_toString);
具体,就是把想打印的东西一传进去就OK了。推荐还是用firebug吧,强大且详细。用习惯了也觉得蛮可爱的……
使用方法:
test: Debug.writeln( var | obj | nothing);
相关阅读 更多 +