一尘不染

如何从脚本路径获取查询字符串值?

javascript

我将Javsacript文件添加到脚本路径中具有不同查询字符串的页面中,如下所示:

第1页:

<script type="text/javascript" src="file.js?abc=123"></script>

第2页:

<script type="text/javascript" src="file.js?abc=456"></script>

Page3:

<script type="text/javascript" src="file.js?abc=789"></script>

在我的Javascript文件中,如何获取“ abc”参数的值?我尝试为此使用window.location,但这不起作用。

如果有帮助,下面是我用来查找查询字符串参数值的函数:

function getQuerystring(key, defaultValue) {
    if (defaultValue == null) defaultValue = "";
    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(window.location.href);
    if (qs == null)
        return defaultValue;
    else
        return qs[1];
}

阅读 258

收藏
2020-05-01

共1个答案

一尘不染

这个有可能。请参见通过src属性传递JavaScript参数。最重要的一点是,由于HTML(而非 XHTML)脚本是在加载时执行的,因此,脚本一经触发就可以找到自身,因为它始终是页面中的最后一个脚本,

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(/^[^\?]+\??/,'');

然后,您只需应用查询字符串解析。

2020-05-01