📜  js 获取当前脚本的文件夹 - Javascript (1)

📅  最后修改于: 2023-12-03 14:43:33.174000             🧑  作者: Mango

JS 获取当前脚本的文件夹

在开发过程中,我们经常需要获取当前脚本所在文件夹的路径来执行一些操作。本文将介绍在JS中获取当前脚本所在文件夹路径的几种方法。

方法一: document.currentScript

使用 document.currentScript 可以获取当前正在执行的脚本对象,从而可以获取脚本的路径。

const currentScript = document.currentScript;
const currentScriptSrc = currentScript.src;
const currentScriptFolderPath = currentScriptSrc.substring(0, currentScriptSrc.lastIndexOf('/'));
  • 首先通过 document.currentScript 获取当前脚本对象。
  • 然后获取当前脚本的路径 currentScript.src
  • 最后通过 substring 方法截取当前脚本的文件夹路径。
方法二: 获取调用栈的最后一个元素

另一种方法是通过获取调用栈的最后一个元素来获取当前脚本所在的路径。

function getCurrentFolderPath() {
    const error = new Error();
    const stack = error.stack;
    const lastCallStack = stack.split('\n')[2];
    const currentScriptFolderPath = lastCallStack.substring(lastCallStack.lastIndexOf('(') + 1, lastCallStack.lastIndexOf('/'));
    return currentScriptFolderPath;
}

const currentScriptFolderPath = getCurrentFolderPath();
  • 首先声明获取调用栈的错误对象 const error = new Error();
  • 然后获取调用栈 const stack = error.stack;
  • 获取调用栈的最后一个元素 const lastCallStack = stack.split('\n')[2];
  • 最后通过 substring 方法截取当前脚本的文件夹路径。
方法三: 获取当前文档的基准路径

通过获取当前文档的基准路径 document.baseURI,然后再通过字符串操作获取当前脚本所在的路径。

const pageBaseURI = document.baseURI;
const currentScriptSrc = document.currentScript.src;
const currentScriptPath = currentScriptSrc.replace(pageBaseURI, '');
const currentScriptFolderPath = currentScriptPath.substring(0, currentScriptPath.lastIndexOf('/'));
  • 首先获取当前文档的基准路径 const pageBaseURI = document.baseURI;
  • 然后获取当前脚本的路径 const currentScriptSrc = document.currentScript.src;
  • 再将当前脚本路径中的基准路径替换为空字符串 const currentScriptPath = currentScriptSrc.replace(pageBaseURI, '');
  • 最后通过 substring 方法截取当前脚本的文件夹路径。

以上就是三种获取当前脚本所在文件夹路径的方法,可以根据实际情况选择适合的方法来使用。