从.js文件中获取查询字符串

时间:2017-03-06 15:51:57

标签: javascript jquery

我在一个页面中有一个远程调用的两个或多个小部件。例如:

<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值?

2 个答案:

答案 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
    }
}