[英]Fetch query string from inside a .js file
我在一个带有远程调用的页面中有两个或更多的小部件。 例如:
<script async src="https://example.com/widget.js?cid=2" type="text/javascript"></script>
<div id="cid_2"></div>
<script async src="https://example.com/widget.js?cid=3" type="text/javascript"></script>
<div id="cid_3"></div>
在每个widget.js
我需要使用cid
参数,在widget内执行一些需要cid
参数的任务,并将结果写到相应的<div>
( #cid_2
, #cid_3
等)上。
如何从widget.js
内部的url( .js?cid=
)获取cid
值?
我找到了一种方法来从脚本src获取并使用函数解码。 这是示例:
//Function to get parameters from script src
function getSRCparameter(sParam) {
var scripts = document.getElementsByTagName('script');
var index = scripts.length - 1;
var myScript = scripts[index];
// myScript now contains our script object
var queryString = myScript.src.replace(/^[^\?]+\??/,'');
var sPageURL = queryString,
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : sParameterName[1];
}
}
}
//Example code
$(document).ready(function(){
//parameter in the src
var getValue = getSRCparameter("cid");
//test results in console
console.log("my get value is: "+getValue);
//put the info inside the divs
$("#cid_"+getValue).html("ID Get is:"+getValue);
});
从问号后的window.location.href
读取,并以"&"
分隔,然后找到参数,其在"="
之前的部分与您的条件匹配。
var parameters = window.location.href.split("?")[1].split["&"];
for (var index in parameters) {
var param = parameters[index].split("=");
if (param[0] === "cid") {
//Do something
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.