获取被叫javascript文件的查询字符串获取被叫javascript文件的查询字符串(Get t

2019-05-12 03:07发布

是否有可能与这样的所谓的javascript文件javascript来获取查询参数:

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

// in file.js
console.log(this.location.query)

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

Answer 1:

不,这是不可能的,因为脚本文件具有全局JavaScript范围内的任何陈述。 你只能找到它的DOM元素里面如图haitaka,但这是将参数传递给脚本中的高度不规范的,当然不是推荐的方式。



Answer 2:

您可以追加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]);
}


Answer 3:

我能得到SRC与下面的代码。 所以,我认为,你可以解析的queryString。

document.currentScript.src


Answer 4:

我知道这是老了,但我想你不会介意(另一个)两个分...

如果您不添加一个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 {}; } 



Answer 5:

我知道这是老了,但我想我会在我的两分钱扔...

如果您已经添加一个ID,脚本元素,为什么不添加自定义属性,以及:

<script src="/file.js" id="query" value="string"></script>

然后你可以使用的getAttribute抢值:

document.getElementById('query').getAttribute('value');


Answer 6:

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])
}


Answer 7:

试着这样得到使用查询的javascript的值

alert(window.location.href.split["?"][1].split["="][1]);


文章来源: Get the query string on the called javascript file