是否有可能与这样的所谓的javascript文件javascript来获取查询参数:
// in html
<script src="/file.js?query=string"></script>
// in file.js
console.log(this.location.query)
这是可能以某种方式,或者我必须使用服务器?
是否有可能与这样的所谓的javascript文件javascript来获取查询参数:
// in html
<script src="/file.js?query=string"></script>
// in file.js
console.log(this.location.query)
这是可能以某种方式,或者我必须使用服务器?
不,这是不可能的,因为脚本文件具有全局JavaScript范围内的任何陈述。 你只能找到它的DOM元素里面如图haitaka,但这是将参数传递给脚本中的高度不规范的,当然不是推荐的方式。
您可以追加id属性来这样的脚本标签:
<script src="/file.js?query=string" id="query"></script>
然后调用它:
console.log(document.getElementById("query").src.split("query=")[1]);
一个小的工作示例代码如下:
<html>
<head>
<script src="aaa.js?query=abcd" id="query"></script>
</head>
<body></body>
</html>
这里是aaa.js里面的代码:
window.onload=function(){
alert(document.getElementById("query").src.split("query=")[1]);
}
我能得到SRC与下面的代码。 所以,我认为,你可以解析的queryString。
document.currentScript.src
我知道这是老了,但我想你不会介意(另一个)两个分...
如果您不添加一个ID,脚本元素,詹姆斯·史密斯不需要id属性的一个片段 。 该ID少的特点是巨大的,因为你的脚本文件,并不需要夫妇在主叫方一侧的ID。
// Extract "GET" parameters from a JS include querystring function getParams(script_name) { // Find all script tags var scripts = document.getElementsByTagName("script"); // Look through them trying to find ourselves for(var i=0; i<scripts.length; i++) { if(scripts[i].src.indexOf("/" + script_name) > -1) { // Get an array of key=value strings of params var pa = scripts[i].src.split("?").pop().split("&"); // Split each key=value into array, the construct js object var p = {}; for(var j=0; j<pa.length; j++) { var kv = pa[j].split("="); p[kv[0]] = kv[1]; } return p; } } // No scripts match return {}; }
我知道这是老了,但我想我会在我的两分钱扔...
如果您已经添加一个ID,脚本元素,为什么不添加自定义属性,以及:
<script src="/file.js" id="query" value="string"></script>
然后你可以使用的getAttribute抢值:
document.getElementById('query').getAttribute('value');
在file.js
,当前脚本是被包含的所有文件的最后一个脚本。 所以,你可以通过以下方式获得它:
var scripts = document.getElementsByTagName('script');
var currentScript = scripts[scripts.length-1];
if (currentScript.src.indexOf('app_key') !== -1) {
console.log(currentScript.src.split('query=')[1])
}
试着这样得到使用查询的javascript的值
alert(window.location.href.split["?"][1].split["="][1]);