如何调式网站中未格式化javascript程序?使用了firebug,eclipse,chrome都不行?

解决方案 »

  1.   

    貌似javascript调试跟javascript代码有没格式化没关系吧?
      

  2.   

    比方说
    (function(){var M=navigator.userAgent.indexOf("MSIE")!=-1&&!window.opera;var T=(document.compatMode=="BackCompat");function I(C){return document.getElementById(C)}function K(C){return document.createElement(C)}function P(G,V,C){if(M){G.attachEvent("on"+V,(function(W){return function()me("INPUT");for(var X=0;X<C.length;X++){if(W==C[X].getAttribute("name")){G=C[X];return G}else{G=false}}}function L(G){var V=document.forms[0];for(var C in G){if(C=="f"){if(O("f")){if(O("f").id=="bdsug_ipt_f"){V.removeChild(I("bdsug_ipt_f"))}else{O("f").value="8"}}}else{if(I("bdsug_ipt_"+C)){V.removeChild(I("bdsug_ipt_"+C))}}}}var A=0;if(typeof window.baidu!="object"||window.baidu==null){window.baidu={}}if(typeof window.bdsug!="object"||window.bdsug==null){window.bdsug={}}baidu.sug={};bdsug.sug={};baidu.sugkeywatcher={};bdsug.sugkeywatcher={};var J=(function(){function C(Z){var X=this.__MSG_QS__;if(!X[Z]){X[Z]=[]}for(var Y=1,V=arguments.length,W;Y<V;Y++){X[Z].push(arguments[Y])}}function G(W){var X=this.__MSG_QS__[W.type];if(X==null){return }for(var Y=0,V=X.length;Y<V;Y++){X[Y].rm(W)}}return{ini:function(V){V.__MSG_QS__={};V.on=C;V.dm=G;return V}}})();var F=(function(){var V=I("kw");var d;var f=0;var C=0;var b="";var W="";var a;var h=false;var Y=true;function X(){if(Y){A=new Date().getTime();F.dm({type:"start"});Y=false}}function c(l){if(Y){A=new Date().getTime();F.dm({type:"start"});Y=false}l=l||window.event;if(l.keyCode==9||l.keyCode==27){F.dm({type:"hide_div"})}if(l.keyCode==13){N(l);F.dm({type:"key_enter"})}if(l.keyCode==86&&l.ctrlKey){H({n:2})}if(d.style.display!="none"){if(l.keyCode==38){N(l);F.dm({type:"key_up"})}if(l.keyCode==40){F.dm({type:"key_down"})}}else{if(l.keyCode==38||l.keyCode==40){F.dm({type:"need_data",wd:V.value})}}}function i(){var l=V.value;if(l==b&&l!=""&&l!=W&&l!=a){if(C==0){C=setTimeout(function(){F.dm({type:"need_data",wd:l})},100)}}else{clearTimeout(C);C=0;b=l;if(l==""){F.dm({type:"hide_div"})}if(W!=V.value){W=""}}}function j(){f=setInterval(i,10)}function e(){clearInterval(f)}function g(){if(h){window.event.cancelBubble=true;window.event.returnValue=false;h=false}}function Z(l){V.blur();V.setAttribute("autocomplete",l);V.focus()}function G(l){var l=l||window.event;if(l.keyCode==13){N(l)}}V.setAttribute("autocomplete","off");var k=false;baidu.sugkeywatcher.on=function(){if(!k){if(M){V.attachEvent("onkeydown",c)}else{V.addEventListener("keydown",c,false)}k=true}};bdsug.sugkeywatcher.on=function(){if(!k){if(M){V.attachEvent("onkeydown",c)}else{V.addEventListener("keydown",c,false)}k=true}};baidu.sugkeywatcher.off=function(){if(k){if(M){V.detachEvent("onkeydown",c)}else{V.removeEventListener("keydown",c,false)}k=false}};bdsug.sugkeywatcher.off=function(){if(k){if(M){V.detachEvent("onkeydown",c)}else{V.removeEventListener("keydown",c,false)}k=false}};bdsug.sugkeywatcher.on();P(V,"mousedown",X);P(V,"beforedeactivate",g);if(window.opera){P(V,"keypress",G)}return J.ini({rm:function(l){switch(l.type){case"div_ready":d=l.sdiv;W=V.value;j();break;case"clk_submit":e();V.blur();V.value=l.wd;break;case"ent_submit":e();V.blur();break;case"key_select":a=l.selected;break;case"close":e();Z("on");break;case"mousedown_tr":if(navigator.userAgent.toLowerCase().indexOf("webkit")!=-1){e();setTimeout(j,2000)}h=true;break}}})})();var U=(function(){var g;var Z=I("kw");var k;var c=-1;var C;var l;var n;function m(){var V=k.rows;for(var o=0;o<V.length;o++){V[o].className="ml"}}function d(){if(typeof (k)!="undefined"&&k!=null&&g.style.display!="none"){var V=k.rows;for(var o=0;o<V.length;o++){if(V[o].className=="mo"){return[o,V[o].cells[0].innerHTML]}}}return[-1,""]}function h(){if(M){n.style.display="none"}g.style.display="none"}function G(){m();this.className="mo"}function a(V){U.dm({type:"mousedown_tr"});if(!M){V.stopPropagation();V.preventDefault();return false}}function b(o){var V=o;return function(){var p=C[V];h();U.dm({type:"clk_submit",oq:I("kw").value,wd:p,rsp:V})}}function e(V){V=V||window.event;N(V);U.dm({type:"close"});h();(new Image()).src="http://s.baidu.com/w.gif?fm=suggestion&title=%B9%D8%B1%D5&t="+new Date().getTime()}function W(){var V=[Z.offsetWidth,Z.offsetHeight];g.style.width=((M&&T)?V[0]:V[0]-2)+"px";g.style.top=((M&&T)?V[1]:V[1]-1)+"px";g.style.display="block";if(M){n.style.top=((M&&T)?V[1]:V[1]-1)+"px";n.style.width=((M&&T)?V[0]:V[0]-2)+"px"}}function X(p,o){if(p&&o){var V=p.length;var r=o;if(o.indexOf(p)!=-1){var s="<span>"+p+"</span>";var q="<b>"+o.substring(V)+"</b>";r=s+q}o=r}o=o.replace("&","&amp;");return o}function i(){k=K("TABLE");k.id="st";k.cellSpacing=0;k.cellPadding=2;var q=K("tbody");k.appendChild(q);for(var r=0,V=C.length;r<V;r++){var p=q.insertRow(-1);P(p,"mouseover",G);P(p,"mouseout",m);P(p,"mousedown",a);P(p,"click",b(r));var o=p.insertCell(-1);o.innerHTML=X(l,C[r])}g.innerHTML="";g.appendChild(k);W();if(M){n.style.display="block";n.style.left=0+"px";n.style.top=Z.offsetHeight+"px";n.style.width=Z.offsetWidth+"px";n.style.height=g.offsetHeight-10+"px"}}function Y(){c=d()[0];if(c==-1){U.dm({type:"submit"})}else{U.dm({type:"ent_submit",oq:l,wd:d()[1],rsp:c})}}function j(){c=d()[0];m();if(c==0){U.dm({type:"key_select",selected:""});I("kw").value=l;c--;L({oq:l,sug:C[c],n:1,rsp:c,f:3})}else{if(c==-1){c=C.length}c--;var V=k.rows[c];V.className="mo";U.dm({type:"key_select",selected:C[c]});I("kw").value=C[c];H({oq:l,sug:C[c],n:1,rsp:c,f:3})}}function f(){c=d()[0];m();if(c==C.length-1){U.dm({type:"key_select",selected:""});I("kw").value=l;c=-1;L({oq:l,sug:C[c],n:1,rsp:c,f:3})}else{c++;var V=k.rows[c];V.className="mo";U.dm({type:"key_select",selected:C[c]});I("kw").value=C[c];H({oq:l,sug:C[c],n:1,rsp:c,f:3})}}return J.ini({rm:function(V){switch(V.type){case"div_ready":g=V.sdiv;n=V.frm;break;case"give_data":l=V.data.q;C=V.data.s;if(C.length!=0){i()}else{h()}break;case"key_enter":Y();break;case"key_up":j();break;case"key_down":f();break;case"hide_div":h();break;case"mousedown_other":h();break;case"window_blur":h();break;case"need_resize":W();break}}})})();var S=(function(){var X=document.forms[0];function C(Y){return String(Y).replace(new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+\x24)","g"),"")}function G(){if(I("bdsug_ipt_sug")){if(I("bdsug_ipt_sug").value==C(I("kw").value)){L({n:1,sug:1})}else{L({f:1})}}}P(X,"submit",G);function V(){G();X.submit()}function W(Y){H(Y);L({sug:1,n:1});X.submit()}return J.ini({rm:function(Y){switch(Y.type){case"clk_submit":case"ent_submit":W({oq:Y.oq,rsp:Y.rsp,f:3,sugT:(new Date().getTime()-A)});break;case"submit":V();break}}})})();var B=(function(){var G={};function V(C){if(typeof G[C]=="undefined"){B.dm({type:"request_data",wd:C})}else{B.dm({type:"give_data",data:G[C]})}}function W(C){G[C.q]=C;B.dm({type:"give_data",data:G[C.q]})}return J.ini({rm:function(C){switch(C.type){case"response_data":W(C.data);break;case"need_data":V(C.wd);break}}})})();var R=(function(){var C;var V;function G(W){R.dm({type:"need_cookie"});if(C){document.body.removeChild(C)}C=K("SCRIPT");C.src="http://suggestion.baidu.com/su?wd="+encodeURIComponent(W)+"&p="+V+"&cb=window.bdsug.sug&t="+(new Date()).getTime();C.charset="gb2312";document.body.appendChild(C)}return J.ini({rm:function(W){switch(W.type){case"request_data":G(W.wd);break;case"give_cookie":var X=W.sug;if(X>0){X=3}V=X;break}}})})();bdsug.sug=function(C){bdsug.dm({type:"response_data",data:C})};bdsug.initSug=function(){bdsug.dm({type:"init"})};J.ini(bdsug);var E=(function(){function C(){if(navigator.cookieEnabled){document.cookie="su=0; domain=www.baidu.com"}}function G(){var V=(navigator.cookieEnabled&&/sug=(\d)/.test(document.cookie)?RegExp.$1:3);E.dm({type:"give_cookie",sug:V})}return J.ini({rm:function(V){switch(V.type){case"close":C();break;case"need_cookie":G();break}}})})();var D=(function(){var X=I("kw");var C;var a=document.forms[0];var W;function Y(){if(C.offsetWidth!=0&&X.offsetWidth!=C.offsetWidth){D.dm({type:"need_resize"})}}function b(){C=K("DIV");C.id="sd_"+new Date().getTime();C.style.display="none";a.appendChild(C);if(M){W=K("IFRAME");W.style.display="none";W.style.position="absolute";C.parentNode.insertBefore(W,C)}}function Z(c){c=c||window.event;var d=c.target||c.srcElement;if(d==X){return }while(d=d.parentNode){if(d==C){return }}D.dm({type:"mousedown_other"})}function V(){D.dm({type:"window_blur"})}function G(){var d="#"+C.id;var c=[];D.dm({type:"div_ready",sdiv:C,frm:W});setInterval(Y,100);P(document,"mousedown",Z);P(window,"blur",V);c.push(d+"{border:1px solid #817F82;position:absolute;top:28px;left:0}");c.push(d+" table{width:100%;background:#fff;cursor:default}");c.push(d+" td{font:14px verdana;line-height:20px}");c.push(d+" td b{color:#333}");c.push(d+" .mo{background-color:#E2EAFF}");c.push(d+" .ml{background-color:#fff}");Q(c.join(""))}baidu.sug.initial=G;bdsug.sug.initial=G;return J.ini({rm:function(c){switch(c.type){case"start":G();break;case"init":b();break}}})})();F.on("need_data",B);F.on("close_div",U);F.on("key_enter",U);F.on("key_up",U);F.on("key_down",U);F.on("hide_div",U);F.on("start",D);B.on("request_data",R);B.on("give_data",U);bdsug.on("response_data",B);bdsug.on("init",D);U.on("clk_submit",F,S);U.on("ent_submit",F,S);U.on("submit",S);U.on("key_select",F);U.on("close",F,E);U.on("mousedown_tr",F);D.on("mousedown_other",U);D.on("need_resize",U);D.on("div_ready",F,U);D.on("window_blur",U);R.on("need_cookie",E);E.on("give_cookie",R);window.bdsug.initSug()})();这一段javasciprt代码, 都是在一行当中,没有空格 和回车,这样就无法设置断点进行调试
      

  3.   


    就类似上面我提到的例子,来看,试用firebug是无法进行断点调试的。应该先将从网络传过来的压缩过的*.js文件进行正确的格式话,才能对某一函数设置断点 进行调试。但是现在firebug却无法将*.js文件进行格式话的方法。
    各位不知道有啥好的建议
      

  4.   

    使用yslow插件,有一个ALl Befaultiful js 是全部进行格式化的
      

  5.   

    使用yslow插件,Tools下面
    All JS Beautifiedhttp://cdn.intechgrity.com/wp-content/uploads/2010/08/YSlow-Tools.png
      

  6.   

    大版给力啊.toLZ, 我一般是用firebug, 然后看DOM中它分离出的结构来分析. 不过遇到复杂了就困难了
      

  7.   

    IE8 的F12好像可以调试这种lz是在调试别人网站的js吗? 可以尝试下载同级目录下未压缩的js,比如
    他的js叫  xxx-min.js
    那你就下载 xxx.js
    ext-all-debug.js  <-->  ext-all.js另外就是修改firebug插件,firebug包里面也都是用js写的,在他把js内容显示出来之前格式化一下
      

  8.   


    是的 我是调式baidu.com的js, 但是你说的简略了,不易理解,能否说的具体点,最好能举例说明一下。多谢
      

  9.   

    vs 能针对某一网站比方baidu.com里面的js文件,里面的某一js 函数设置断点进行调试吗??
      

  10.   

    IE8里按F12 调出调试器应该可以调试这种写在一行里的js,但整个就一行 所以无法加断点调试
      

  11.   

    要把js提取出来, 然后进入调试状态就能调试了嘛, 跟js文件无关
      

  12.   

    刚刚看到ie9 的dev工具可以,可惜2003不可以装。。
      

  13.   

    firefox我还没找到,但是ie和chrome找到了(我用的都是最新版)
    我做记号的地方
    太辛苦了,先传到微博,再贴过来