获取被调用的javascript文件上的查询字符串

Ada*_*dam 10 javascript url file query-string

是否可以在被调用的javascript文件上使用javascript获取查询参数,如下所示:

// in html
<script src="/file.js?query=string"></script>

// in file.js
console.log(this.location.query)
Run Code Online (Sandbox Code Playgroud)

这可能是某种方式,或者我必须使用服务器?

hai*_*aka 12

您可以将id属性附加到脚本标记,如下所示:

<script src="/file.js?query=string" id="query"></script>
Run Code Online (Sandbox Code Playgroud)

然后调用它:

console.log(document.getElementById("query").src.split("query=")[1]);
Run Code Online (Sandbox Code Playgroud)

一个小的工作示例代码如下:

<html>
<head>
<script src="aaa.js?query=abcd" id="query"></script>
</head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是aaa.js里面的代码:

window.onload=function(){
    alert(document.getElementById("query").src.split("query=")[1]);
}
Run Code Online (Sandbox Code Playgroud)


小智 7

不,这是不可能的,因为脚本文件在全局JavaScript范围内没有表示.你只能在haitaka所示的DOM中找到它的元素,但这是一种高度非标准的,当然不推荐将参数传递给脚本的方法.


小智 5

我可以用下面的代码得到src.所以我认为你可以解析queryString.

document.currentScript.src
Run Code Online (Sandbox Code Playgroud)

  • 哈哈,太好了...我们不用再担心 IE (2认同)