【问题标题】:Possible to get query parameters of the <script> src JavaScript URL?可以获取 <script> src JavaScript URL 的查询参数吗?
【发布时间】:2017-04-01 17:27:54
【问题描述】:

例如,我有以下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 上。

【问题讨论】:

标签: javascript html5-history query-parameters script-tag location-href


【解决方案1】:

您可以使用document.currentScript.src 访问&lt;script&gt;src 属性,然后提取查询参数。对于旧版浏览器(例如 IE 11),通过以下方式访问 src-属性:

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

这将返回最后执行脚本的src-属性。 在某些情况下,最后执行的脚本不是当前脚本(例如,如果一个脚本操作了其他&lt;script&gt;-元素),因此它有点不可靠。

【讨论】:

  • 正是我希望的存在!谢谢。不幸的是 IE 11 不支持 document.currentScript: caniuse.com/#search=currentScript 我通常不会关心 IE 11,但在这种特殊情况下我必须关心......我发现的唯一 polyfill 适用于 IE 6-10 并且明确表示不支持不能在 IE 11 上工作 :(github.com/JamesMGreene/document.currentScript IE 11 的任何解决方法?
  • 有一个解决方法。我会把它添加到答案中。我认为这已经在 SO 的其他地方得到了回答,虽然 - 我找不到这个问题。
  • 我可以搜索所有&lt;script&gt;标签并用我的URL查找一个...然后获取查询参数。
猜你喜欢
  • 2011-06-14
  • 1970-01-01
  • 2011-06-19
  • 2020-12-27
  • 1970-01-01
  • 2017-02-01
  • 1970-01-01
  • 2017-07-20
  • 1970-01-01
相关资源
最近更新 更多