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);