0

我目前在其网址为的页面中http://localhost:49852/Default.aspx?MID=17

在此页面中,我有以下代码

<a href="Configure.aspx"><span class="ico gray shadow gear"></span>Configure</a>

我希望一旦用户单击Configure链接,URL 中的 MID 参数将被裁剪,用户将被重定向到

http://localhost:49852/Configure.aspx?MID=17

这是 JS 代码

function getParameterByName(name) {
    var match = RegExp('[?&]' + name + '=([^&]*)')
            .exec(window.location.search);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}

我如何将它们绑定在一起?

4

3 回答 3

3

首先,我认为您应该为您的 href 提供一个 id 以便于访问,例如:

<a href="Configure.aspx" id="configure"><span class="ico gray shadow gear"></span>Configure</a>

然后你应该能够改变属性:

$(function() {
    var href = $("#configure").attr("href");
    $("#configure").attr("href", href + getParameterByName("MID"))
});

这将改变实际的href。您可能也可以轻松地覆盖 click 方法,但如果您想将其从配置链接更改为所有链接或其他内容,这可能更具可扩展性。

于 2012-11-14T14:20:28.603 回答
0

您可以在元素上附加一个单击事件侦听器,并在单击时进行修改window.location以执行重定向。像这样的东西:

$(function () {
   // You might need to use a better selector here, 
   // add an ID to the span element and select on that instead
   $("span.ico").on("click", function () {
      window.location.href = "Configure.aspx?MID=" + getParameterByName("MID");
      return false;
   });
});
于 2012-11-14T14:21:11.733 回答
0

您可以使用这个很好的函数从 QueryString 中解析 MID,如Parse query string in JavaScript 中 所述,并使用它构建一个新 URL。

function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split('&');
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split('=');
        if (decodeURIComponent(pair[0]) == variable) {
            return decodeURIComponent(pair[1]);
        }
    }
    console.log('Query variable %s not found', variable);
}

喜欢 ;

var mid = getQueryVariable(MID);
var url = 'http://localhost:49852/Configure.aspx?MID='+mid;
location.href=url;
于 2012-11-14T14:24:40.793 回答