获取当前JS文件的路径 中的参数

原创 yiXiaoWang 随笔 js方法总结 1222阅读 2015-08-11 19:18:48 举报

看到我们的老大 月影大大 和 JK大神 在给别人说这个问题,就记下来了。。。。。

<script src="angular.min.js?v=1.24"> </script>

比如获取 v=1.24这个参数

[code]var strJsPath='';

(function() {

try {
    throw Error("获取JS路径有误");
}
catch(ex) {

    if(ex.fileName) {    //Firefox
        strJsPath = ex.fileName;
    }
    else if(ex.stack) {   //chrome
        strJsPath = (ex.stack.match(/at\s+(.*?):\d+:\d+/)||['',''])[1];
    }
    else if(ex.sourceURL) {   //Safari
        strJsPath = ex.sourceURL;
    }

}

if(strJsPath){

    return; 
}

var scripts = document.getElementsByTagName("script"),
    script = scripts[scripts.length-1];

strJsPath = document.querySelector?script.src:script.getAttribute("src",4);//IE8直接.src

})();

alert(strJsPath);[/code]

同步运行的时候用上边方法就行了

异步的话就先同步的时候把条件存下来就行啦

但是利用上边的方法不太好,一般的第三方js,都是定义一个全局变量,因为js文件都是会经过cdn、浏览器缓存,加了参数会破坏缓存。

如果别人在你的<script>上加 async 也会导致 scripts[scripts.length - 1].src 失效

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复