document.currentScript is null
document.currentScript
only returns the script that is currently being processed. During callbacks and events, the script has finished being processed and document.currentScript
will be null
. This is intentional, as keeping the reference alive would prevent the script from being garbage collected if it's removed from the DOM and all other references removed.
If you need to keep a reference to the script outside of any callbacks, you can:
var thisScript = document.currentScript;
setInterval(() => console.log(thisScript.src), 2000);
You can keep the reference of document.currentScript
outside the callback
var currentScript = document.currentScript;
setInterval(function(){
var fullUrl = currentScript.src;
console.log(fullUrl)
},2000);