js如何获取当前页面所在的路径

JavaScript023

js如何获取当前页面所在的路径,第1张

可以使用window对象的location对象的里的href来获取当前页面的URL地址。

工具原料:编辑器、浏览器

1、Location 对象包含有关当前 URL 的信息,Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问,代码示例如下:

<html>

<head><script type="text/javascript">

<script>

alert(window.location.href) 

</script>

</script>

</head>

<body>

test

</body>

</html>

2、运行的结果如下图:

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

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()

}

唯一可能的方法是从html里的<script>里找。js本身无法获取自己路径。

var scripts = document.getElementsByTagName('script')

// 获取现在已经加载的所有script

var lastScript = scripts[scripts.length-1]

// 获取最近一个加载的script,即这个js本身

var scriptName = lastScript.src

// 获取此js的路径

之后对路径做处理切割出来文件名就容易了。

这段代码一般是没问题的。