获取当前js文件被引用的路径

2023-04-12

 需求介绍

项目中需要外提供一个获取登录状态的jsonp接口,并且需要封装成一个js方法给使用者调用。

本文介绍如何根据当前环境请求对应的jsonp接口地址(开发,测试,生产,等其他环境)。

 实现

获取当前js文件被引用的环境代码如下:

var fileOrigin=function(){
    var scripts=document.getElementsByTagName("script"),
        fileName='myFile.js',
        filePath='';
    for(var i=scripts.length;i;i--){
        if(scripts[i-1].src.indexOf(fileName)>=0){
            filePath=scripts[i-1].src;
        }
    }
    if(filePath.match(/https?\:\/\/(.*?)\//)){
        return filePath.match(/https?\:\/\/(.*?)\//)[0];
    }
    //如果匹配不到,使用默认路径
    return 'https://test.com/';
}()

以下为几组fileOrigin的值示例

<script src='https://www.aa.com/d/myFile.js'></script>

fileOrigin='https://www.aa.com/'

<script src='http://www.bb.com/myFile.js'></script>

fileOrigin='http://www.bb.com/'