Возможно ли получить параметры запроса URL-адреса <script> src JavaScript?

В качестве примера у меня есть следующий HTML:

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

Я хочу быть в состоянии прочитать q=xyz параметр запроса изнутри code.js, Я старался:

console.log(window.location.href)

Но это дает мне URL-адрес HTML-документа, а не code.jsURL (я мог бы затем проанализировать URL для параметров запроса).

Есть ли способ получить параметры запроса импортированного файла JavaScript из этого JavaScript? Я знаю, что могу прочитать параметры запроса на сервере и затем отправить обратно JavaScript, в который встроены параметры запроса, но я этого не хочу. Я хочу иметь возможность размещать файлы JavaScript на CDN, которые можно настроить с помощью параметров запроса.

1 ответ

Решение

Вы могли бы использовать document.currentScript.src чтобы получить доступ к <script>"s src-attribute, а затем извлечь параметр запроса. Для более старых браузеров (таких как IE 11) доступ к src-приписать по:

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

Это вернет src-атрибут последнего выполненного скрипта. В некоторых случаях последний выполненный скрипт не является текущим скриптом (например, если скрипт манипулирует другим <script>-элементы), и поэтому это немного ненадежно.

Другие вопросы по тегам