<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[旧瓶新酒]javascript的console.log()输出在FireBug下查看及调试。同时firebug也支持debugger关键字后用来检测是否F12打开了调试器了。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Php/Js/Shell/Go]]></category>
<pubDate>Tue, 25 Oct 2011 03:41:47 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	分组信息输出有点意思：<br/>console.group(&quot;第一组信息&quot;);console.log(&quot;%s,%d&quot;,string,int); console.groupEnd();<br/>console.time() console.endTime(）结合在一起能查看脚本执行时间<br/>------<br/>同时firebug也支持debugger关键字了：<br/>firebug:&nbsp;&nbsp;有了这个firebug的新的debugger后，就会停留在那儿，可以查看里面的参数（脚本-》监控）及函数（脚本-》堆栈）情况。<br/>microsoft script editor: IE下的，不太用，可能用下。<br/><br/><br/><br/>------<br/>http://ticket.cpcmuseum.cn/Home/Index<br/>http://ticket.cpcmuseum.cn/Scripts/PageProtection.js?Math.random()<br/><textarea name="code" class="php" rows="15" cols="100">
!function () &#123;
&nbsp;&nbsp;&nbsp;&nbsp;var timelimit = 50;
&nbsp;&nbsp;&nbsp;&nbsp;var open = false;
&nbsp;&nbsp;&nbsp;&nbsp;setInterval(function () &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var starttime = new Date();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debugger;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(new Date());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(starttime);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(new Date() - starttime);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//if (new Date() - starttime &gt; timelimit) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (false) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;open = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//open = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.stop();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (true) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(&#039;系统检测到您非法调试&#039;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.location.href = &#039;/Home/SystemError&#039;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; else &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;open = false
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;, 1000)
&#125;();
</textarea><br/><br/>相减是微秒它这儿50微秒就认为是用F12打开调试了，会提示不让调试，且间隔1000毫秒进行检测（setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式）：<br/>Date Fri Aug 13 2021 22:35:27 GMT+0800 (中国标准时间)<br/>PageProtection.js:94:17<br/>Date Fri Aug 13 2021 22:35:27 GMT+0800 (中国标准时间)<br/>PageProtection.js:95:17<br/>673<br/><br/>开启 debugger ，代码在执行到第三行前终止。也就是说打开F12会终止，出现间隔大于50毫秒的情况，也就提示用户不让你调试哟，怎么办？Fiddler伺候替换文件即可。其实完全可以用fiddler直接替换掉这个页面里面的部分JS语句即可绕过：<br/><a href="https://jackxiang.com/post/8535/" target="_blank">https://jackxiang.com/post/8535/</a><br/><br/>&nbsp;&nbsp; 前言：Javascript自己有这样一个函数输出，其目的在于对变量的跟踪，而后端有FirePHP变量输出在Header头中，<br/>见：http://jackxiang.com/post/1117/<br/>而前端有Js的console.log()来实现输出到FireBug中，以提高快速开发和调试逻辑等错误的目的（如果对于多维数组一个一个去打印，没这个来得快），<br/>也就是本文想要描述的话题，尽管陈旧，但还是值得借鉴和实用的价值。<br/><textarea name="code" class="html" rows="15" cols="100">
&lt;script type=&quot;text/javascript&quot;&gt;
//变量
var i = &#039;I am a string&#039;;
console.log(&#039;变量：&#039;,i);

//数组
var arr = [1,2,3,4,5];
console.log(&#039;数组：&#039;,arr);

//对象
var obj1 = &#123;
&nbsp;&nbsp;&nbsp;&nbsp;key1 : &#039;value1&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;key2 : &#039;value2&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;key3 : &#039;value3&#039;
&#125;;
var obj2 = &#123;
&nbsp;&nbsp;&nbsp;&nbsp;key6 : &#039;value4&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;key5 : &#039;value5&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;key4 : &#039;value6&#039;
&#125;;
var obj3 = &#123;
&nbsp;&nbsp;&nbsp;&nbsp;key9 : &#039;value7&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;key8 : &#039;value8&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;key7 : &#039;value9&#039;
&#125;;

console.log(&#039;对象：&#039;,obj1);
//对象数组
var objArr1 = [obj1,obj2,obj3];
var objArr2 = [[obj1],[obj2],[obj3]];

console.log(&#039;对象数组1：&#039;,objArr1);
console.log(&#039;对象数组1：&#039;,objArr2);
&lt;/script&gt;
</textarea><br/><br/>在FireBug控制台中输出：<br/><textarea name="code" class="html" rows="15" cols="100">
变量：I am a string
数组：[1, 2, 3, 4, 5]
对象：Object &#123; key1=&quot;value1&quot;, key2=&quot;value2&quot;, key3=&quot;value3&quot;&#125;
对象数组1：[Object &#123; key1=&quot;value1&quot;, key2=&quot;value2&quot;, key3=&quot;value3&quot;&#125;, Object &#123; key6=&quot;value4&quot;, key5=&quot;value5&quot;, key4=&quot;value6&quot;&#125;, Object &#123; key9=&quot;value7&quot;, key8=&quot;value8&quot;, key7=&quot;value9&quot;&#125;]
对象数组1：[[Object &#123; key1=&quot;value1&quot;, key2=&quot;value2&quot;, key3=&quot;value3&quot;&#125;], [Object &#123; key6=&quot;value4&quot;, key5=&quot;value5&quot;, key4=&quot;value6&quot;&#125;], [Object &#123; key9=&quot;value7&quot;, key8=&quot;value8&quot;, key7=&quot;value9&quot;&#125;]]
</textarea><br/>========<br/>自己试了下果然有这个功能：<br/><textarea name="code" class="html" rows="15" cols="100">
&nbsp;&nbsp;$().ready(&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;function()&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&#123;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//对象
&nbsp;&nbsp;&nbsp;&nbsp;var obj1 = &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key1 : &#039;value1&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key2 : &#039;value2&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key3 : &#039;value3&#039;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;;
&nbsp;&nbsp;&nbsp;&nbsp;var obj2 = &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key6 : &#039;value4&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key5 : &#039;value5&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key4 : &#039;value6&#039;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;;
&nbsp;&nbsp;&nbsp;&nbsp;var obj3 = &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key9 : &#039;value7&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key8 : &#039;value8&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key7 : &#039;value9&#039;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;;
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;console.log(&#039;对象：&#039;,obj1);
&nbsp;&nbsp;&nbsp;&nbsp;//对象数组
&nbsp;&nbsp;&nbsp;&nbsp;var objArr1 = [obj1,obj2,obj3];
&nbsp;&nbsp;&nbsp;&nbsp;var objArr2 = [[obj1],[obj2],[obj3]];
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;console.log(&#039;对象数组1：&#039;,objArr1);
&nbsp;&nbsp;&nbsp;&nbsp;console.log(&#039;对象数组1：&#039;,objArr2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;
&nbsp;&nbsp;);&nbsp;&nbsp;
</textarea><br/>FireBug输出：<br/><textarea name="code" class="html" rows="15" cols="100">
对象： Object &#123; key1=&quot;value1&quot;, key2=&quot;value2&quot;, key3=&quot;value3&quot;&#125;
对象数组1： [Object &#123; key1=&quot;value1&quot;, key2=&quot;value2&quot;, key3=&quot;value3&quot;&#125;, Object &#123; key6=&quot;value4&quot;, key5=&quot;value5&quot;, key4=&quot;value6&quot;&#125;, Object &#123; key9=&quot;value7&quot;, key8=&quot;value8&quot;, key7=&quot;value9&quot;&#125;]
对象数组1： [[Object &#123; key1=&quot;value1&quot;, key2=&quot;value2&quot;, key3=&quot;value3&quot;&#125;], [Object &#123; key6=&quot;value4&quot;, key5=&quot;value5&quot;, key4=&quot;value6&quot;&#125;], [Object &#123; key9=&quot;value7&quot;, key8=&quot;value8&quot;, key7=&quot;value9&quot;&#125;]]
</textarea><br/><br/>参考来源：<br/>http://hi.baidu.com/%C4%AD%C4%AD%CF%C4a/blog/item/b5d197ae118209ecfaed501d.html
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [旧瓶新酒]javascript的console.log()输出在FireBug下查看及调试。同时firebug也支持debugger关键字后用来检测是否F12打开了调试器了。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>