今天老板让把获取文档的路径改成获取script中的路径,自己在网上百度了一下,没有明确的答案,自己就顺手写了一个。让大家欣赏下
不要说用location.href,那是文档的路径。
从script中去匹配?那又如何获知你现在的js的文件名?手工填?那样兼容性太差。当js中调用另外一个js的时候,一般来说,知道肯定是两个js之间的相对位置关系,而不会是另外那个js和文档的位置关系,因此要调用必须要知道js的自身路径
。
其实有个很简单的方法,document没载入完也可以使用elementsByTagName,但是那时的文档的是不完整,有多不完整?对!就是不完整到只有到引用的那个script为止。下面
的都尚未载入。于是只要找到script的最后一个的src就是调用js的时候使用的地址。并且浏览器很乖地把这个相对地址转换成绝对地址返回来。
贴代码。
function baseUrl(){
}
也可以这么写
function baseUrl() {
var scripts = document.getElementsByTagName('script');
//获取script中src的路径
var search = scripts[scripts.length-1].src;
//根据地址路径来相对的进行截取,根据自身情况,答案不唯一
search = search.split('?')[search.split('?').length-1];
return scripts.replace(search);//获取绝对地址
)