繁体   English   中英

将变量中的查询字符串附加到每个URL

[英]Append Query String From Variable To Every URL

我创建了一个查询字符串,并将其附加到URL,如下所示:

// HTML from index.html
<input type="button" value="Yes" onclick="redirect(this);" id="YES" class="btn btn-primary btn-lg">
<input type="button" value="No" onclick="redirect(this);" id="NO" class="btn btn-primary btn-lg">
// JS on index.html
function redirect(e){

    var mapPg = "map.html";
    var qString = "?choice=";
    location.href = mapPg + qString + e.id;

}

map.html页面开始,我要获取该查询字符串并将其传递到除index.html页面之外的每个URL。

当用户单击price.html pg时,它将使用查询字符串来调用一个函数,该函数将为“是”答案提取数据。 对于“否”的答案也是如此。

我不知道如何将查询字符串附加到单击时每个pg的URL上。

导航是已qString的JavaScript包含。我在导航中的所有<a>中添加了qString类, qString更容易定位它们。

jQuery是一个选择吗? 如果是这样的话...

<script type="text/javascript">
$(document).ready(function() {
    $("a").prop("href", function() { return this.href + location.search; })
});
</script>

您可以将其添加到每个页面:

window.addEventHandler("load", function() {
    var match = location.search.match(/\bchoice=([^&]*)/);
    if (!match) {
        return;
    }
    var choice = match[1];
    var navlinks = document.getElementsByClassName("qString");
    for (var i = 0; i < navlinks.length; i++) {
        if (navlinks[i].search == '') {
            navlinks[i].search = '?choice=' + choice;
        } else {
            navlinks[i].search += '&choice=' + choice;
        }
    }
}
location.href = mapPg + qString + e.id;

这里的代码需要更改。 e.getAttribute( “ID”)

谢谢@ShawnJacobson和@Barmar。 尽管单个答案无法正常工作,但我将两者结合在一起得出了可行的解决方案。

var navlinks = document.getElementsByClassName("qString");
    $(navlinks).prop("href", function() { return this.href + location.search; })

Shawn的答案有些奏效,但禁用了所有<a>标记。 Barmar的答案不起作用,但是在看到变量var navlinks它给了我一个处理方法的想法。

我非常感谢您的帮助,以期找到答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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