获取js自身路径的方法

来源:互联网 发布:nodejs 获取json key 编辑:程序博客网 时间:2024/05/17 05:52

今天老板让把获取文档的路径改成获取script中的路径,自己在网上百度了一下,没有明确的答案,自己就顺手写了一个。让大家欣赏下

不要说用location.href,那是文档的路径。


从script中去匹配?那又如何获知你现在的js的文件名?手工填?那样兼容性太差。当js中调用另外一个js的时候,一般来说,知道肯定是两个js之间的相对位置关系,而不会是另外那个js和文档的位置关系,因此要调用必须要知道js的自身路径


其实有个很简单的方法,document没载入完也可以使用elementsByTagName,但是那时的文档的是不完整,有多不完整?对!就是不完整到只有到引用的那个script为止。下面

的都尚未载入。于是只要找到script的最后一个的src就是调用js的时候使用的地址。并且浏览器很乖地把这个相对地址转换成绝对地址返回来。


贴代码。
function baseUrl(){
    var scriptSrc =document.getElementsByTagName_r('script')[document.getElementsByTagName_r('script').length-1].src;
    var jsName =scriptSrc.split('/')[scriptSrc.split('/').length-1];
    return scriptSrc.replace(jsName,'');
}

也可以这么写

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);//获取绝对地址


)

0 0
原创粉丝点击