Demo of `document.currentScript` polyfill
by James Greene
HTML
<script src="https://rawgit.com/JamesMGreene/fb4a71e060da6e26511d/raw/76893c67ea3a88ef2eeefc5daecbff64c2d9aa63/document.currentScript.js"></script>
<script src="https://rawgit.com/JamesMGreene/79c0cbb29addd5eefd14/raw/2e2e5382097f2ca65bfde4f1c2738206408831dc/test.js"></script>
<h1>Look at the dev console!</h1>
<a id="scriptLink" href='javascript:(function() { var curr = document._currentScript(); var currSrcAttr = !!(curr && curr.hasAttribute("src")); var currSrc = currSrcAttr ? curr.src : curr ? "(inline script)" : "`undefined`"; console.log("Click handler script.src: " + currSrc); })();'>Click here first, though!</a>
JavaScript
/*
Polyfill script:
https://github.com/JamesMGreene/document.currentScript
*/
(function() {
var curr = document._currentScript();
var currSrcAttr = !!(curr && curr.hasAttribute("src"));
var currSrc = currSrcAttr ? curr.src : curr ? "(inline script)" : "`undefined`";
console.log("Synchronous inline script.src: " + currSrc);
})();
setTimeout(function() {
var curr = document._currentScript();
var currSrcAttr = !!(curr && curr.hasAttribute("src"));
var currSrc = currSrcAttr ? curr.src : curr ? "(inline script)" : "`undefined`";
console.log("Async inline script.src: " + currSrc);
}, 1000);