获取js自身路径的方法

今天老板让把获取文档的路径改成获取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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值