获取当前Javascript脚本文件的路径

原创 2015年05月22日 14:49:49

获取当前Javascript脚本文件的路径

获取当前Javascript脚本文件的路径,在特定场景下可能需要,比如写模块加载器,或者进行日志记录。并没有统一的方法适用于所有浏览器,本文分几种情况进行说明。

(1). 标准做法: document.currentScript 对象的src属性
适用于Firefox 4+, Chrome 29+, Opera 16+, Safari 8+.

var src = document.currentScript.src;

(2). 从Error对象的stack属性中提取文件路径
适用于IE10+, Safari 7-, Opera 15-.

var e = new Error('err');
var stack = e.stack || e.sourceURL || e.stacktrace || '';
var rgx = /(?:http|https|file):\/\/.*?\/.+?.js/, 
var src = (rgx.exec(stack)||[])[0] || '';

如果浏览器不支持Error构造函数,也可以通过try…catch来获取一个Error对象。

监听onerror事件,来对Error对象处理,原理也是如此。onerror事件的回调函数的第2个参数就是src. 代码就不贴了。

(3). 找document.scripts集合中的最后一个script元素的src
适用于脚本加载过程中执行的情况,不适用于脚本初始化完成后的调用。对浏览器没有要求。

var src = document.scripts[document.scripts.length - 1].src;

(4).查找document.scripts集合中readyState属性为interative的script元素的src
适用于IE9-. IE9以下浏览器中,script.readyState属性为interative表示脚本正在执行。

var scripts = document.scripts, src;
for (var i = scripts.length - 1; i>=0; i--){
    if (scripts[i].readyState === 'interative'){
        src = scripts[i].src;
        break;
    }
}

本文只是提供思路分析,如果需要在产品中使用,需要处理各种适用情形的判断。有人制作了一个JS函数(getCurrAbsPath.js)来处理。

相关文章推荐

js获取当前路径的url

//获取当前窗口的Url //returnUrl=http://localhost:8080/shopping/buyCart.shtml?skuId=510&amount=1 window.l...

Javascript 获取当前JS文件路径

1.原生Javascript获取当前JS文件路径 var file, scripts = document.getElementsByTagName("script"); file = script...
  • zsg88
  • zsg88
  • 2017年03月31日 09:09
  • 1223

获取当前的js文件的路径

如果要获取当前页面中 high-im-onchat.js中src对应的路径呢? 可用倒序循环获取 js方法如下 //获取当前的js文件的路径 function getJsPath(jsn...

js获取当前页面所在目录路径

/** * 当前页面所在目录路径 * 当前页面地址:http://www.abc.com/shop/page.php?id=123&s=142231233 * 结果:http://w...

js获取当前项目根路径URL

1.js获取项目路径方法:/** * //获取当前项目根路径 * @return {TypeName} */ function getRootPath(){ //获取当前网址,如: ...
  • rzg813
  • rzg813
  • 2014年04月24日 14:50
  • 5151

JS读取文件,Javascript之文件操作 (IE)

一、功能实现核心:FileSystemObject 对象      要在javascript中实现文件操作功能,主要就是依靠FileSystemobject对象。 二、FileSystemObject...

JS读取本地文件及目录的方法

Javascript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼、富有朝气。但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行读、写和删除,就象在VB、VC等高...

js获取被选择文件的路径方法汇总

js获取被选择文件的路径方法汇总

JavaScript读取文件目录信息以及目录下的文件名信息

一、需求 最近遇到的一个需求,利用JS读取共享文件夹下的文件名信息,然后在网页上列出文件名,供用户选择。 二、代码 JS读取文件需要插件支持,该插件只有IE支持,所以本文的代码只能在IE下运行。 ...

JS获取当前文件所在的文件夹全路径

JS获取当前文件所在的文件夹全路径 一、Google,FF浏览器获取当前js文件的路径 document.currentScript.src //Google,FF 下获取当...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:获取当前Javascript脚本文件的路径
举报原因:
原因补充:

(最多只允许输入30个字)