可以得到 <script> src JavaScript URL 的查询参数吗?
Possible to get query parameters of the <script> src JavaScript URL?
例如,我有以下 html:
<body>
<script src="code.js?q=xyz"></script>
</body>
我希望能够从 code.js
中读取 q=xyz
查询参数。我试过了:
console.log(window.location.href)
但它给了我 html 文档的 URL,而不是 code.js
的 URL(然后我可以解析 URL 的查询参数).
有什么方法可以从 JavaScript 中获取导入的 JavaScript 文件的查询参数?我知道我可以读取服务器上的查询参数,然后发回嵌入了查询参数的 JavaScript,但我不想那样。我希望能够将 JavaScript 文件放在可通过查询参数配置的 CDN 上。
您可以使用 document.currentScript.src
访问 <script>
的 src
属性,然后提取查询参数。对于旧版浏览器(例如 IE 11),通过以下方式访问 src
-属性:
var scripts = document.getElementsByTagName('script');
var src = scripts[scripts.length - 1].src;
这将 return 最后执行的脚本的 src
属性。
在某些情况下,最后执行的脚本不是当前脚本(例如,如果一个脚本操作其他 <script>
-元素),因此它有点不可靠。
例如,我有以下 html:
<body>
<script src="code.js?q=xyz"></script>
</body>
我希望能够从 code.js
中读取 q=xyz
查询参数。我试过了:
console.log(window.location.href)
但它给了我 html 文档的 URL,而不是 code.js
的 URL(然后我可以解析 URL 的查询参数).
有什么方法可以从 JavaScript 中获取导入的 JavaScript 文件的查询参数?我知道我可以读取服务器上的查询参数,然后发回嵌入了查询参数的 JavaScript,但我不想那样。我希望能够将 JavaScript 文件放在可通过查询参数配置的 CDN 上。
您可以使用 document.currentScript.src
访问 <script>
的 src
属性,然后提取查询参数。对于旧版浏览器(例如 IE 11),通过以下方式访问 src
-属性:
var scripts = document.getElementsByTagName('script');
var src = scripts[scripts.length - 1].src;
这将 return 最后执行的脚本的 src
属性。
在某些情况下,最后执行的脚本不是当前脚本(例如,如果一个脚本操作其他 <script>
-元素),因此它有点不可靠。