Possible to get query parameters of the <script> src JavaScript URL?

As an example, I have the following html:

<body>
  <script src="code.js?q=xyz"></script>
</body>

I want to be able to read the q=xyz query parameter from within code.js. I tried:

console.log(window.location.href)

But it gives me the html document's URL, not code.js's URL (I could then parse the URL for the query parameters).

Is there any way to get an imported JavaScript file's query parameters from within that JavaScript? I know I could read the query parameters on a server and then send back JavaScript that has the query parameters embedded, but I don't want that. I want to be able to put JavaScript files on CDNs that can be configured via query parameters.

Answers:

Answer

You could use document.currentScript.src to access the <script>'s src-attribute and then extract the query parameter. For older browsers (such as IE 11) access the src-attribute by:

var scripts = document.getElementsByTagName('script');
var src = scripts[scripts.length - 1].src;

This will return the src-attribute of the last executed script. In some cases the last executed script is not the current script (for example, if a script manipulates other <script>-elements), and therefore it's a bit unreliable.

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.