Как можно получить параметр переданный в URL загружаемого на странице сценария JavaScript?
Допустим есть страница index.html на которой загружается сценарий JavaScript к примеру кодом:
<script type="text/javascript" src="script.js?param=1"></script>
Как в этом случаи им загружаемого скрипта получить значение параметра param который был передан в URL загружаемого скрипта.
P.S. Про способ получить на странице все html элементы script затем проверить их URL на предмет нужного адреса скрипта, а затем при совпадении получить параметр - я знаю.
Ответы (1 шт):
Автор решения: Spatz
→ Ссылка
Вот несколько способов передачи параметров в скрипт, но они не будут работать если скрипт загружается как модуль (type="module"), т.к. используют свойство document.currentScript:
- используем queryString
<script src="customizable.js?q=123" /></script>:
const u = new URL(document.currentScript.src)
const qs = new URLSearchParams(u.search)
console.log(qs.get("q"))
- используем "левый" атрибут
<script src="customizable.js" q="123" /></script>(не рекомендуется из-за возможных конфликтов со стандартными атрибутами):
console.log(document.currentScript.getAttribute("q"))
- используем data-* атрибут
<script src="customizable.js data-q="123"/></script>(предпочтительный способ):
console.log(document.currentScript.dataset.q)