beta版-创意无限,简单实用(javascript-log-IE) googlecode:http://code.google.com/p/dewind/最新下载:http://dewind.googlecode.com/files/beta-20081017.rar 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 论坛里大家是可以广开言路的啊,大可不必欲言又止的...比如楼上的大哥说有点偏,不妨说详细些呀问题越多进步才会越迅速。我写这个的目的是:在客户端代替alert连续的输出javascript运行时的日志。用途是:用于客户端脚本分析和查错。 Kingfishers-1.0版-创意无限,简单实用(javascript-logger)项目发布及1.0版下载地址 : http://code.google.com/p/dewind/◆2008/11/05 1.0版发布1.浏览器兼容: IE, Mozilla Firefox, Opera ,Safari,Chrome2.XHTML 兼容: XHTML 1.0 Transitional、XHTML 1.0 Strict 、XHTML 4.01 Transitional、XHTML 4.01 Strict3.修正缺陷N多,版本相对稳定,发布为1.0版. 很佩服楼主,可惜个人不怎么会用,一般就是FIREBUG+VS 2005调试JS了……支持楼主,看到黑黑的背景,很亲切 先谢谢大家了。用过Kingfishers的朋友们,不妨提些建议或说些感受,给我些启发:)说到客户端debug工具,个人认为firebug是最好的了,我一直都在用。但毕竟“连续输出js运行日志”和“设断点调试js程序”还是有很大区别的.编写Kingfishers是希望能弥补一下,客户端连续输出日志的空缺.但愿能给有这方面需求,又苦于找不到好工具的朋友们提供些便利吧。Kingfishers-1.0下载地址 :http://code.google.com/p/dewind/ 下面把Kingfishers相关的介绍贴上来://---------------------------------------------------------------------------------------------------// | 关于Kingfishers //---------------------------------------------------------------------------------------------------// Kingfishers是一个用javascript语言编写的,能够代替alert,在浏览器中连续输出客户端javascript脚本运行日志的工具。主要用于客户端脚本的分析和查错。Kingfishers是本人在学习javascript的过程中写的一个练习作品.还有很多地方需要完善,试用后欢迎您反馈好的创意.//---------------------------------------------------------------------------------------------------// | Kingfishers开发背景 //---------------------------------------------------------------------------------------------------// 随着客户端技术的蓬勃发展,在javascript开发过程中,如果总是使用alert的方式进行程序调式,很难满足企业级开发的需要。 比如在某个ajax项目中,客户端存在一个自定义三四千行JS文件,其中包含各种自定义的javascript对象。 分析和查错的过程中,总是需要在js程序执行到某个关键点的时候,监视自定义对象的值或状态,判断执行结果是否是预期的样子. 使用alert的方式存在以下两个明显的缺点: 1.假如一次执行中有n个关键点的值都想随时监视,使用alert您就不的不点够n次确认, - 给开发者的感觉是很不连贯也不直观,很难流畅发现隐藏很深的问题。 2.用于调试的alert语句,在发布的时候必须删除掉,等有朝一日需要再次调试的时候, - 您就不得不回忆之前的关键点,分别加上alert,艰难的调试。 鉴于以上需求,本着简单实用的原则,自己动手编写了这个javascript调试工具,使用该工具之后,以上两个问题,变得迎刃而解。您或许会发现,客户端下javascript查错变的不再艰难。 该工具主要有以下特点: 1.完全的可插入式思想,对目标程序没有任何负作用。 [可在{example\basic\10.log工具参数测试.html}页面中进行测试和确认] 2.使用方法简单,方便。只需要引入一行JS代码,搞定所有事情. [使用示例请参照{example\basic}目录的资源]全部核心程序包括 1)核心脚本文件 : logger.js [必须] 2)相关式样文件 : logger.css [必须] 3)代码高亮引擎文件 : Highlighter.js [可选] 当启动参数 highlighter=false 时不需要该文件目录说明: 1) example\basic : 使用示例 2) example\xhtml : W3C标准兼容性测试 3) readme : 使用说明//---------------------------------------------------------------------------------------------------// | Kingfishers参数说明 //---------------------------------------------------------------------------------------------------// <script type="text/javascript" src="logger.js" //(必须)logger.js文件路径 enabled = true //(可选)是否启用log功能 是:true(默认)/否:false lang = "cn" //(可选)界面初始语言 中文:cn(默认)/英文:en time = false //(可选)时刻显示开关 显示:true/隐藏:false(默认) contextmenu = false //(可选)右键开关 有效:true(默认)/无效:false skin = false //(可选)右键菜单皮肤切换 支持切换:true/不支持切换:false(默认) highlighter = false //(可选)代码高亮 使用:true(默认)/不使用:false suspended = false //(可选)控制台悬浮开关 支持悬浮:true(默认)/不支持悬浮:false cookie = false //(可选)是否支持cookie 支持:true(默认)/不支持:false buffereffect = false//(可选)是否支持打开缓冲效果 支持:true/不支持:false(默认) simplemode= false //(可选)是否以简易模式显示控制台 简易模式:true/标准模式:false(默认) min= false //(可选)是否初始显示为最小化 是:true/否:false(默认) ></script> ______________________________________________________________________________________________________备注: 1.参数 enabled=false 时, (1)其余参数均无效, (2)控制台DIV、右键DIV不会被创建到当前document的body中. (3)当前document中不会加载logger.css资源, 2.参数 highlighter=false 时, (1)当前document中不会加载Highlighter.js资源 (2)ctrl+shift+d触发后输出到控制台的网页代码没有被高亮处理. 3.参数 contextmenu = false 时, (1)右键DIV不会被创建到当前document的body中. (2)在工具上单击右键,不会弹出工具自定义的右键菜单. 4.参数 cookie=true 时, 移动或调整大小后,控制台的位置和尺寸信息将给记录到cookie中,使得页面刷新后,日志控制台总是会保持刷新前的位置、大小 5.参数 skin = false 时, 右键菜单的肤色总是使用logger.css中配置的颜色. 参数 skin = true 时, 右键菜单的肤色切换模式可以在运行是进行设定,包含随即肤色模式、锁定肤色模式. 6.参数 suspended=false时, 控制台的浮动特征失效. 参数 suspended=true时, 滚动条事件导致控制台在不在可视范围内时,自动将其浮动到可见视野内. 7.其余参数相对好理解,不进行详细说明.//---------------------------------------------------------------------------------------------------// | 您可以做的选择 //---------------------------------------------------------------------------------------------------// 项目庞大的时候,需要总是在程序中保留一些调试信息,必要的时候开启进行调试。 所以,能够让关键点的信息随时打印出来也是很重要的,同时保证在Release之后, 对目标脚本执行性能没有任何影响是必须要考虑的问题。 本工具提供的print接口是:$Log.loginfo(msg,color);//msg:输出的信息体 color:信息的颜色 Kingfishers并不想强迫您适应些什么,您可以选择自己喜欢的方式来使用它.如果您认真阅读了{Kingfishers参数说明}章节,您应该会很容易的发现Kingfishers闪光的地方.除了参数可选之外,您还可以选择通过以下两种方式来使用Kingfishers.方式一: 如果您的项目中使用了Kingfishers,当您的项目Release的时候, 您只需要将enabled参数设置为false,不需要删除目标程序中的调试代码,Kingfishers不会对目标JS程序执行性能有任何影响; [您可在{example\basic\10.log工具参数测试.html}页面中进行测试和确认] 当您的项目需要再次调试时,只需要将script标签中enabled参数设置为true即可. 方式二: 如果您的项目release的时候,你希望将Kingfishers加入到目标程序中的script标签删除,您也可以 选择在您的程序中重构一个类似于下面的方法,名字随意.比如: function jsOut(message,color){$Log.loginfo(message,color);} 在您的项目中统一使用jsOut的方法来输出日志.您可以按照以下步骤发布您的项目: 1) 将Kingfishers加入到目标程序中的script标签删除 2) 修改jsOut方法的实现为空,如 function jsOut(message,color){} Kingfishers - 项目发布 : http://code.google.com/p/dewind/Kingfishers - 在线演示 : http://dewind.googlecode.com/svn/trunk/kingfishers/example.htmKingfishers - 最新下载 : http://dewind.googlecode.com/files/Kingfishers-1.0.1.rar◆2008/11/21 v1.0.1改进的功能如下:1.新增三个参数moveborder = true //(可选)拖动及调整日志Console大小时是否出现虚线框 是:true(默认)/否:falsegrayout = true //(可选)拖动日志Console时,底层页面元素是否灰显 是:true(默认)/否:falsetargetdiv="targetDivId" //(可选)将日志Console嵌入到指定id的div中 2.扩充$Log.url接口Kingfishers-1.0 : $Log.url({url地址})Kingfishers-1.0.1 : $Log.url({url地址},{代码高亮风格});使用方法形如:$Log.url('http://www.baidu.com',"html");$Log.url('http://dewind.googlecode.com/files/kingfishers-1.0.css',"css");$Log.url('http://dewind.googlecode.com/files/Kingfishers-readme.txt');$Log.url('http://ovsmbt.mop.com/ov.js',"js"); 3.针对每条logger日志的处理单击: 该条日志所在行变为蓝色背景,此时清除信息动作将忽略此条日志.双击: 该条日志的内容被选中,直接按ctrl+c,可将日志内容拷贝到剪贴板中.4.在logger.js中加入以下方法:function $alert(message,color){ $Log.loginfo(message,color);}5.结合$FT.show()功能,增加错误栈输出.6.整合example Jquery瀑布流布局(每行代码都有详细注释) 向表格中每个单元格内加图片,而且是每个单元格里只加一个图片,还要不动行列的长宽 急等,如何找出两个字符串的不同之处?急急急... 如何实现在一个框架页提交另外一个框架页表单的功能 关于全选,反选的问题!!! 急!在线等!谁有控制文件上传格式的JS 页面执行JAVASCRIPT文件时出错 如何让一个连接是word文档点击后是直接下载而不是打开? 请问一个js文件里面如何引用其他js文件的内容? 这个方法在IE无效,在CHROME可正常执行哪错了。求教 网页中activex事件的参数如果是对象如何解析? 这个联动问题怎么解决啊,大侠们救救我啊
比如楼上的大哥说有点偏,不妨说详细些呀
问题越多进步才会越迅速。我写这个的
目的是:在客户端代替alert连续的输出javascript运行时的日志。
用途是:用于客户端脚本分析和查错。
1.浏览器兼容: IE, Mozilla Firefox, Opera ,Safari,Chrome
2.XHTML 兼容: XHTML 1.0 Transitional、XHTML 1.0 Strict 、XHTML 4.01 Transitional、XHTML 4.01 Strict
3.修正缺陷N多,版本相对稳定,发布为1.0版.
用过Kingfishers的朋友们,不妨提些建议或说些感受,给我些启发:)
说到客户端debug工具,个人认为firebug是最好的了,我一直都在用。
但毕竟“连续输出js运行日志”和“设断点调试js程序”还是有很大区别的.
编写Kingfishers是希望能弥补一下,客户端连续输出日志的空缺.
但愿能给有这方面需求,又苦于找不到好工具的朋友们提供些便利吧。
Kingfishers-1.0下载地址 :http://code.google.com/p/dewind/
下面把Kingfishers相关的介绍贴上来:
//---------------------------------------------------------------------------------------------------//
| 关于Kingfishers
//---------------------------------------------------------------------------------------------------//
Kingfishers是一个用javascript语言编写的,能够代替alert,
在浏览器中连续输出客户端javascript脚本运行日志的工具。
主要用于客户端脚本的分析和查错。
Kingfishers是本人在学习javascript的过程中写的一个练习作品.
还有很多地方需要完善,试用后欢迎您反馈好的创意.//---------------------------------------------------------------------------------------------------//
| Kingfishers开发背景
//---------------------------------------------------------------------------------------------------//
随着客户端技术的蓬勃发展,在javascript开发过程中,如果总是使用alert的方式进行程序调式,
很难满足企业级开发的需要。
比如在某个ajax项目中,客户端存在一个自定义三四千行JS文件,其中包含各种自定义的javascript对象。
分析和查错的过程中,总是需要在js程序执行到某个关键点的时候,
监视自定义对象的值或状态,判断执行结果是否是预期的样子.
使用alert的方式存在以下两个明显的缺点:
1.假如一次执行中有n个关键点的值都想随时监视,使用alert您就不的不点够n次确认,
- 给开发者的感觉是很不连贯也不直观,很难流畅发现隐藏很深的问题。
2.用于调试的alert语句,在发布的时候必须删除掉,等有朝一日需要再次调试的时候,
- 您就不得不回忆之前的关键点,分别加上alert,艰难的调试。 鉴于以上需求,本着简单实用的原则,自己动手编写了这个javascript调试工具,
使用该工具之后,以上两个问题,变得迎刃而解。您或许会发现,客户端下javascript查错变的不再艰难。
该工具主要有以下特点:
1.完全的可插入式思想,对目标程序没有任何负作用。
[可在{example\basic\10.log工具参数测试.html}页面中进行测试和确认]
2.使用方法简单,方便。只需要引入一行JS代码,搞定所有事情.
[使用示例请参照{example\basic}目录的资源]全部核心程序包括
1)核心脚本文件 : logger.js [必须]
2)相关式样文件 : logger.css [必须]
3)代码高亮引擎文件 : Highlighter.js [可选] 当启动参数 highlighter=false 时不需要该文件目录说明:
1) example\basic : 使用示例
2) example\xhtml : W3C标准兼容性测试
3) readme : 使用说明//---------------------------------------------------------------------------------------------------//
| Kingfishers参数说明
//---------------------------------------------------------------------------------------------------//
<script type="text/javascript"
src="logger.js" //(必须)logger.js文件路径
enabled = true //(可选)是否启用log功能 是:true(默认)/否:false
lang = "cn" //(可选)界面初始语言 中文:cn(默认)/英文:en
time = false //(可选)时刻显示开关 显示:true/隐藏:false(默认)
contextmenu = false //(可选)右键开关 有效:true(默认)/无效:false
skin = false //(可选)右键菜单皮肤切换 支持切换:true/不支持切换:false(默认)
highlighter = false //(可选)代码高亮 使用:true(默认)/不使用:false
suspended = false //(可选)控制台悬浮开关 支持悬浮:true(默认)/不支持悬浮:false
cookie = false //(可选)是否支持cookie 支持:true(默认)/不支持:false
buffereffect = false//(可选)是否支持打开缓冲效果 支持:true/不支持:false(默认)
simplemode= false //(可选)是否以简易模式显示控制台 简易模式:true/标准模式:false(默认)
min= false //(可选)是否初始显示为最小化 是:true/否:false(默认)
></script>
______________________________________________________________________________________________________
备注:
1.参数 enabled=false 时,
(1)其余参数均无效,
(2)控制台DIV、右键DIV不会被创建到当前document的body中.
(3)当前document中不会加载logger.css资源,
2.参数 highlighter=false 时,
(1)当前document中不会加载Highlighter.js资源
(2)ctrl+shift+d触发后输出到控制台的网页代码没有被高亮处理.
3.参数 contextmenu = false 时,
(1)右键DIV不会被创建到当前document的body中.
(2)在工具上单击右键,不会弹出工具自定义的右键菜单.
4.参数 cookie=true 时,
移动或调整大小后,控制台的位置和尺寸信息将给记录到cookie中,使得页面刷新后,日志控制台总是会保持刷新前的位置、大小
5.参数 skin = false 时,
右键菜单的肤色总是使用logger.css中配置的颜色.
参数 skin = true 时,
右键菜单的肤色切换模式可以在运行是进行设定,包含随即肤色模式、锁定肤色模式.
6.参数 suspended=false时, 控制台的浮动特征失效.
参数 suspended=true时, 滚动条事件导致控制台在不在可视范围内时,自动将其浮动到可见视野内.
7.其余参数相对好理解,不进行详细说明.
//---------------------------------------------------------------------------------------------------//
| 您可以做的选择
//---------------------------------------------------------------------------------------------------//
项目庞大的时候,需要总是在程序中保留一些调试信息,必要的时候开启进行调试。
所以,能够让关键点的信息随时打印出来也是很重要的,同时保证在Release之后,
对目标脚本执行性能没有任何影响是必须要考虑的问题。
本工具提供的print接口是:$Log.loginfo(msg,color);//msg:输出的信息体 color:信息的颜色 Kingfishers并不想强迫您适应些什么,您可以选择自己喜欢的方式来使用它.
如果您认真阅读了{Kingfishers参数说明}章节,您应该会很容易的发现Kingfishers闪光的地方.
除了参数可选之外,您还可以选择通过以下两种方式来使用Kingfishers.方式一:
如果您的项目中使用了Kingfishers,当您的项目Release的时候,
您只需要将enabled参数设置为false,不需要删除目标程序中的调试代码,Kingfishers不会对目标JS程序执行性能有任何影响;
[您可在{example\basic\10.log工具参数测试.html}页面中进行测试和确认]
当您的项目需要再次调试时,只需要将script标签中enabled参数设置为true即可.
方式二:
如果您的项目release的时候,你希望将Kingfishers加入到目标程序中的script标签删除,您也可以
选择在您的程序中重构一个类似于下面的方法,名字随意.比如:
function jsOut(message,color){$Log.loginfo(message,color);}
在您的项目中统一使用jsOut的方法来输出日志.您可以按照以下步骤发布您的项目:
1) 将Kingfishers加入到目标程序中的script标签删除
2) 修改jsOut方法的实现为空,如
function jsOut(message,color){}
Kingfishers - 在线演示 : http://dewind.googlecode.com/svn/trunk/kingfishers/example.htm
Kingfishers - 最新下载 : http://dewind.googlecode.com/files/Kingfishers-1.0.1.rar◆2008/11/21 v1.0.1改进的功能如下:
1.新增三个参数
moveborder = true //(可选)拖动及调整日志Console大小时是否出现虚线框 是:true(默认)/否:false
grayout = true //(可选)拖动日志Console时,底层页面元素是否灰显 是:true(默认)/否:false
targetdiv="targetDivId" //(可选)将日志Console嵌入到指定id的div中 2.扩充$Log.url接口
Kingfishers-1.0 : $Log.url({url地址})
Kingfishers-1.0.1 : $Log.url({url地址},{代码高亮风格});
使用方法形如:
$Log.url('http://www.baidu.com',"html");
$Log.url('http://dewind.googlecode.com/files/kingfishers-1.0.css',"css");
$Log.url('http://dewind.googlecode.com/files/Kingfishers-readme.txt');
$Log.url('http://ovsmbt.mop.com/ov.js',"js"); 3.针对每条logger日志的处理
单击: 该条日志所在行变为蓝色背景,此时清除信息动作将忽略此条日志.
双击: 该条日志的内容被选中,直接按ctrl+c,可将日志内容拷贝到剪贴板中.4.在logger.js中加入以下方法:
function $alert(message,color){
$Log.loginfo(message,color);
}5.结合$FT.show()功能,增加错误栈输出.6.整合example