我想在下面的HTML文件中调用Javascript:
<body>
<script src="./sample.js?ts=123456789&id=31ade2"></script>
</body>
如何在ts
中使用id
和sample.js
?这甚至可能吗?
我在Google上搜索过,但我发现使用的是location.href
,但没有返回ts
或id
。
(解释为什么window.location.href
没有解决这个问题。)
我们假设上面的脚本位于example.com/index.html
。 window.location.href
中的sample.js
会返回example.com/index.html
,但不会返回./sample.js?ts=123456789&id=31ade2
。
答案 0 :(得分:1)
在sample.js
内,你需要引用脚本元素本身。简单的方法是阅读document.scripts
集合:
const thisScript = document.scripts[document.scripts.length - 1]
const params = getParams(thisScript.src)
console.log(params) // { ts: "123456789", id: "31ade2" }
*注意,为了使其按预期工作,脚本不应异步加载,或者具有defer / async属性。
对于getParams
函数,请随意使用您喜欢的任何实现。例如,这篇文章很好:How can I get query string values in JavaScript?