繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM