获取当前Javascript脚本文件的路径
来源:互联网 发布:网络平台注册协议 编辑:程序博客网 时间:2024/05/18 09:10
获取当前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)来处理。
0 0
- 获取当前Javascript脚本文件的路径
- ruby中获取当前脚本文件的路径
- Python 获取当前脚本文件路径目录
- python获取当前脚本文件路径
- javascript获取当前电脑操作系统的文件路径的方式
- JavaScript获取当前文件全路径、当前目录、当前文件名
- Javascript 获取当前JS文件路径
- 获取当前文件的路径
- 获取当前文件的路径
- 获取当前文件的路径
- 用lua获取当前脚本的路径
- shell获取当前执行脚本的路径
- shell获取当前执行脚本的路径
- Shell 获取当前执行脚本的路径
- 用lua获取当前脚本的路径
- 获取当前运行脚本的父路径
- 【脚本】shell获取当前执行脚本的路径
- SHELL 脚本获取当前所有文件以及路径
- JAVA实现的十种排序算法
- 随笔分类 - 控件
- Hadoop使用-博文
- iOS 发布流程
- Android编程之LayoutInflater的inflate方法详解
- 获取当前Javascript脚本文件的路径
- C#中的集合
- Win7中的软链接详解(mklink命令)
- 不会ishezhi博客皮肤 求帮助
- C++对象和内存
- android仿京东商城例子
- Android编程之LayoutInflater的inflate方法实例
- 'isEqua' 和 '==' 的区别
- 欢迎使用CSDN-markdown编辑器