Is it possible for a js function to figure out the file path of its code ? At runtime.
Ex.
<html><head><script src="/js/version-3.2.1/myfile.js" /><head>...</html>
/js/version-3.2.1/myfile.js
const scriptPath = '/js/version-3.2.1/myfile.js' // how do I get this dynamically?:
const version = scriptPath.split('-')[1].split('/')[0];
console.log("the version is " + version)
Advertisement
Answer
You can use document.currentScript:
The
Document.currentScriptproperty returns the<script>element whose script is currently being processed and isn’t a JavaScript module. (For modules useimport.metainstead.)It’s important to note that this will not reference the
<script>element if the code in the script is being called as a callback or event handler; it will only reference the element while it’s initially being processed.
const scriptPath = document.currentScript.src
// or
const scriptPath = document.currentScript.getAttribute('src')