javascript文件中获取当前文件路径详解
1,在jQuery中获取当前JS文件路径
在jQuery中获取当前JS文件的路径比较简单,只需要如下一行代码就搞定。
var __FILE__ = $("script").last().attr("src");
注意,我们一般把这行代码放到文件的开头,让文件加载的时候就立即执行,这样页面中的script元素中,当前文件恰好是最后一个script。我们千万不要把这行代码放到
代码如下 | |
$(document).ready(); |
中运行,因为如果放到这些语句中去的话,页面的DOM对象已经加载完毕,当前的script就不一定是最后一个script了,从而导致获取的路径不正确。
2,原生javascript获取当前JS文件路径
在原生的javascript中,要获取当前JS文件路径有两种方法。第一种其实思路和在jQuery中是一样的:
代码如下 | |
var __FILE__, scripts = document.getElementsByTagName("script"); |
第二种方法是利用浏览器的异常处理机制,但是这种方法不支持IE10以下版本的IE浏览器:
代码如下 | |
var __FILE__; |
在原生的javascript中获取当前文件路径的时候,建议使用第一种方法,兼容所有浏览器,第二种方法仅供参考
现在看一个完整的实例
代码如下 | |
<!doctype html> <title>获取JS文件的路径 by 司徒正美</title> <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> </head>
|
下面是JS文件的内容,当然现在放出来的只针对本博文讨论的东西:
代码如下 | |
dom = {}; |
补充一些相关的方法
//获取当前文件全路径
代码如下 | |
<script language="javascript"> alert(window.location.href); alert(window.location); alert(location.href); alert(parent.location.href); alert(top.location.href); alert(document.location.href); alert(document.URL); </script> //获取当前目录方法 <script type="text/javascript"> //方法一 var str = location.href; var arr = str.split("/"); delete arr[arr.length-1]; var dir = arr.join("/"); alert(dir);
|
获取相对路径的方法
代码如下 | |
function getRelativePath() //层次为url包含/的长度-没有包含/的长度再减去项目头/的个数(如:http://hi.baidu.com/zdz8207/)
//方法二 alert(location.href.substring(0,location.href.lastIndexOf('/'))); </script> //获取当前文件名 <script language=javascript> var filename=location.href; filename=filename.substr(filename.lastIndexOf('/')+1); alert(filename); </script> |