脚本运行在Web中
使用以下代码即可获取:
globalThis.document.currentScript.src
document.currentScript
返回的是当前执行的script元素;然后调用script元素的src属性即可获取脚本文件的绝对路径。
脚本运行在WebWorker中
WebWorker不可以访问document
对象. 但是可以通过以下方式获取绝对路径:
globalThis.location.href
脚本运行在Node.js中
__filename // 控制台中未定义
module.filename // 推荐
通用函数
/**
* 获取运行该函数的脚本的绝对路径
*/
function get_absolute_path() {
if (globalThis.constructor.name === 'Window') return (document.currentScript && document.currentScript.src) || document.location.href;
if (globalThis.constructor.name === 'DedicatedWorkerGlobalScope') return globalThis.location.href;
if (globalThis.constructor.name === 'Object') return module.filename;
}