我正在开发一个包含这样的js文件的网站:
<script type="text/javascript" src="script.js?param=value"></script>
我有什么方法可以 - 从script.js
内部 - 获取参数及其价值吗?
答案 0 :(得分:1)
由于该脚本与HTML解析器同步运行,您可以获取最后一个script
元素并阅读其src
:
var scripts = document.querySelectorAll("script");
var script = scripts[scripts.length - 1];
console.log(script.src); // "script.js?param=value"
然后使用字符串解析来抓取?
之后的内容,将其分解为名称/值对等等。
或者,如果您在脚本元素上使用async
或defer
,因此它可能不是最后一个,请查找src
包含script.js
的人:< / p>
var script = document.querySelector("script[src*=script.js]");
console.log(script.src); // "script.js?param=value"
这可靠性稍差,因为可以重命名脚本。您可以随时使用querySelectorAll("script")
并找到具有您期望的排序参数的那个。
为避免疑义:我不推荐它。我更喜欢通过初始化调用传递选项,或者在添加脚本之前要求定义对象(比如Google),等等。但是可以这样做。