如何分析js代码的运行路径

JavaScript023

如何分析js代码的运行路径,第1张

只是个最基础的想法了。具体的实践稍微复杂一些:

1 如果script是用src引入的,还要用xhr或者json方式来获得text,可能还需要搭个后台代理。

2 如果function是在命名空间的,可以直接递归for in命名空间去挖里面的public函数出来。

3 private的函数我看就算了,私有函数应该对自己负责,我们没有必要非去整人家的私货。

<HTML>

<BODY>

<SCRIPT LANGUAGE="JavaScript">

<!--

function a(x,y,z){return b(x,y)*c(z)}

function b(x,y){return c(x)*c(y)}

function c(x){return x+x}

setTimeout("alert(a(1,2,3))",0)

//-->

</SCRIPT>

<SCRIPT LANGUAGE="JavaScript">

<!--

(function (){

window._log=[]

function obj2str(o){

var r = []

if(typeof o =="string") return "/""+o.replace(/([/'/"//])/g,"//$1").replace(/(/n)/g,"//n").replace(/(/r)/g,"//r").replace(/(/t)/g,"//t")+"/""

if(typeof o =="undefined") return "undefined"

if(typeof o == "object"){

if(o===null) return "null"

else if(!o.length){

for(var i in o)

r.push(i+":"+obj2str(o[i]))

r="{"+r.join()+"}"

}else{

for(var i =0i<o.lengthi++)

r.push(obj2str(o[i]))

r="["+r.join()+"]"

}

return r

}

return o.toString()

}

../ 表示上级目录。

这是相对路径,做网页里面引用图片、js、媒体文件、css等都经常用到。

index.jsp 引用 jquery-1.4.3.js 那么:jquery-1.4.3.js 文件相对 index.jsp 的位置就是在 index.jsp 的上级目录中的 js 文件夹内。

哎,说得有点绕口,你这样理解:

你在你电脑上建立一个 文件夹C,进 C 里面再新建一个 文件夹D。你再进 D 里面去,然后在 D 里面你把 ../ 这个东西直接看作文件夹内的 向上按钮 ,写一个 ../ 等于你按下了一次向上。

index.jps 和 js 目录是同级的,index.jsp 引用 js 里面的 jq.js 路径是: js/jq.js

listaccount.jsp 和 js 目录不同级,它引用 jq.js 就要 向上 两次,第一次向上是到 account 目录,然后 再向上一次,到 WEB-INF 目录, WEB-INF 目录和 js 目录同级了,接着就可以去 js 目录里面找到 jq.js 了,引用路径是:../../js/jquery-1.4.3.js