但这两种方式都有它的局限性,alert会有中断,有些时候alert出来的值并不可靠,闭包的时候用alert可能会得到不正确的值。debugger使用起来其实也挺纠结的,只有ie支持。所以最合理的方式是js把运行过程需要调试的值输出到页面,或者写到cookie也可以,这种方式不会有alert中断带来值不正确的问题,也不会受浏览器类型的限制,唯一纠结的是操作起来很麻烦。
于是,有了下面说的这个js组件。这个组件的实现参考了log4net组件的记录方式,我们利用这个js的logger组件,就可以用log的输出的方式来进行你的调试工作了。
复制代码 代码如下:
/*
js调试组件
*/
(function () {
var logger = function (level, object, viewType) {
this.level = level;
this.object = object;
this.viewType = viewType;
}
logger.LEVEL_DEBUG = 0;
logger.LEVEL_INFO = 1;
logger.LEVEL_WARN = 2;
logger.LEVEL_ERROR = 3;
logger.LEVEL_FATAL = 4;
logger.VIEW_TYPE_ALERT = 0;
logger.VIEW_TYPE_APPEND = 1;
logger.prototype = {
setLevel: function (level) {
this.level = level;
},
setObject: function (o) {
if (typeof o == 'string') {
this.object = document.getElementById(o);
} else {
this.object = o;
}
},
setViewType: function (type) {
this.viewType = type;
},
log: function (s) {
this.message(100, s);
},
debug: function (s) {
this.message(logger.LEVEL_DEBUG, s);
},
info: function (s) {
this.message(logger.LEVEL_INFO, s);
},
warn: function (s) {
this.message(logger.LEVEL_WARN, s);
},
error: function (s) {
this.message(logger.LEVEL_ERROR, s);
},
fatal: function (s) {
this.message(logger.LEVEL_FATAL, s);
},
message: function (level, s) {
if (level >= this.level) {
if (this.object != null) {
this.object.innerHTML = s;
} else if (this.viewType == logger.VIEW_TYPE_ALERT) {
alert(s);
} else {
document.body.appendChild(document.createTextNode(s));
document.body.appendChild(document.createElement("br"));
}
}
}
};
if (typeof window.Logger == 'undefined' || window.Logger == null)
window.Logger = new logger(logger.LEVEL_DEBUG, null, logger.VIEW_TYPE_APPEND);
})();
怎么使用呢?
这个js组件往window对象注册了Logger对象,我们可以用Logger.log/Logger.debug/Logger.info/Logger.warn/Logger.error/Logger.fatal来输出不同的调试信息。
示例代码如下:
复制代码 代码如下:
Logger.debug(new Date());
Logger.debug(new Date().addHours(3));
很简单,再也不用每个地方都写document.getElementId().innerHtml或者alert/debugger来输出内容了。
示例代码中使用的addHours是我扩展js的Date对象方法,想要了解更多的朋友可以查看《扩展js的Date方法》。
相关推荐:
如何识别文章是否由AI撰写?揭开智能写作的秘密
SEO量:提升网站流量和排名的关键法则,德兴seo
seo资源指的是什么,seo资料 ,绿眼AI
seo深度优化插件是什么,深度优化手机软件 ,ai的缩写
什么是seo方法,何为seo ,ai写作神器源码是什么
什么是seo网络推广seo顾问,seo网络推广员 ,ai20170119
SEO桔子:提升网站排名的必备法宝,seo外包销售
seo都有什么问题,seo都有什么问题和答案 ,ai凯旋公主下载
SEO新闻:2025年最新趋势与最佳实践,你不可错过的SEO战略,郑州网络营销推广的优势
打造内容创作新时代:有言AI生成助力创作者释放灵感
SEO要素:优化网站排名的关键因素全解析,棒球大联盟营销推广文案
ChatGPTWindows版本下载:让AI助力您的工作和生活,ai yamama
ChatGPT页面不自动显示最新消息:如何解决这一困扰,提升使用体验?,斑马ai幼儿百度云网盘
SEO王:掌控搜索引擎优化的至高法则,助力企业飞速腾飞,网站动作优化在哪里下载
GPT-3.5可以免费使用吗?AI未来的无限可能,ai烧猪
SEO刷:让你的网站一夜之间登顶搜索引擎!,独特seo技巧
2025百度收录优化:提升网站排名,助力企业数字化转型,第一ai做
SEO优化排名原理解析:如何提高网站排名,实现精准流量获取,奥迪ai售价
ChatGLM不能搜索网页内容,你真的了解它的局限性吗?,ai修复情侣
自动写文章的AI,提升效率的创作利器
ChatGPT模型进化历程:人工智能的智慧革命,ai 喷枪星空
ChatGPT崩了?用户称打开是一片空白,背后隐藏了什么?,ai 新技巧
ChatGPT怎么找梯子:突破网络限制,轻松访问AI助手的终极指南,鬼灭之刃人物AI还原
为什么seo吸引人,为什么seo吸引人呢 ,ai路径查找器绘制树
SEO地址优化的秘诀:提升网站排名与流量的关键,临沂如何优化网站关键词
亚马逊中什么是seo,亚马逊sop ,ai临摹中国名画
智能AI写文章:高效创作新风尚
如何用AI写公众号文章?让创作更高效、更轻松
WPS改写-轻松提升文档创作效率的秘密武器,推广网站的优势
SEO关键词推广软件官网-助力企业实现高效精准的网络营销,圈圈ai
优化工具:提升工作效率的秘密武器,网站模板的优化策略是什么
ChatGPT免登录:轻松畅聊,无需注册,快速体验AI智能助手,眼泪ai
AI免费工具:提升效率与创意的秘密武器
SEO模块:提升网站排名,驾驭数字营销未来,营口网站建设制作平台
SEO关键词利器:如何借助精准关键词提升网站流量与排名,ai绘画客户
AI写作免费一键生成5000字:高效创作的革命性工具
seo适合什么行业,seo适合的行业 ,在ai如何矢量化
ChatGPT支持多种语言输入输出,让全球资讯触手可及,联想拯救者的ai写作
seo辅助词选什么,seo助手 ,各车企ai
Chat免费,让沟通无界限,尽享智能对话时代,ai没办法置顶
文章写作AI:让创作更高效、精准的智能助手
SEO外链技巧:提升网站排名的秘密武器,ai视频生日祝福
优化综合:引领高效发展的智慧之道,电影营销的推广方式
优化网站的秘诀:提高网站速度与用户体验,助力业务腾飞,旅游网站建设步骤
AI免费写文章生成器高效写作新革命
GPT优化:让你的工作与生活更高效、更智能,Ai__79
SEO优:让网站流量和排名实现飞跃的秘诀,大理哪有企业网站建设
AI文章概括缩写:让内容高效获取的智能工具,ai 处理文件
揭开“好的AI软件”背后的秘密:让生活和工作更智能的利器
ChatGPT:人工智能对话新时代的领航者,ai音响华为还是小米好