获取js脚本的绝对路径

脚本运行在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;
}
posted @ 2020-09-03 09:54  develon  阅读(766)  评论(0编辑  收藏  举报