解决方案 »

  1.   

    论坛里大家是可以广开言路的啊,大可不必欲言又止的...
    比如楼上的大哥说有点偏,不妨说详细些呀
    问题越多进步才会越迅速。我写这个的
    目的是:在客户端代替alert连续的输出javascript运行时的日志。
    用途是:用于客户端脚本分析和查错。
      

  2.   

    Kingfishers-1.0版-创意无限,简单实用(javascript-logger)项目发布及1.0版下载地址 : http://code.google.com/p/dewind/◆2008/11/05 1.0版发布
    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版.
      

  3.   

    很佩服楼主,可惜个人不怎么会用,一般就是FIREBUG+VS 2005调试JS了……支持楼主,看到黑黑的背景,很亲切
      

  4.   

    先谢谢大家了。
    用过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){}
      

  5.   

    Kingfishers - 项目发布 : http://code.google.com/p/dewind/
    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