我在一个页面中有一个远程调用的两个或多个小部件。例如:
<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
参数,在需要cid
参数的窗口小部件中执行一些任务,并将结果写在相应的<div>
上( #cid_2
,#cid_3
等)。
如何从cid
内的网址.js?cid=
)中获取widget.js
值?
答案 0 :(得分:0)
我找到了一种方法来从脚本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);
});
答案 1 :(得分:0)
在问号后从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
}
}