gpt4 book ai didi

javascript - 使用 JavaScript 通过一些查询字符串将用户重定向到当前页面

转载 作者:行者123 更新时间:2023-12-03 21:40:28 25 4
gpt4 key购买 nike

当一个人点击链接时,我想这样做:

  1. 从文本框中获取文本
  2. 对文本进行编码
  3. 重定向到 currentpage.aspx?search=textboxvalue

到目前为止我已经有了这个,但它不起作用:

window.location.href = "?search=" + escape( $("#someId").val());

最佳答案

我需要做一些与你想要的类似的事情,所以我组合了一个函数来允许你做到这一点。我希望它有用。我已经对其进行了相当广泛的测试,没有发现任何问题,如果发现任何问题,请随时告诉我。

函数

function reloadWithQueryStringVars (queryStringVars) {
var existingQueryVars = location.search ? location.search.substring(1).split("&") : [],
currentUrl = location.search ? location.href.replace(location.search,"") : location.href,
newQueryVars = {},
newUrl = currentUrl + "?";
if(existingQueryVars.length > 0) {
for (var i = 0; i < existingQueryVars.length; i++) {
var pair = existingQueryVars[i].split("=");
newQueryVars[pair[0]] = pair[1];
}
}
if(queryStringVars) {
for (var queryStringVar in queryStringVars) {
newQueryVars[queryStringVar] = queryStringVars[queryStringVar];
}
}
if(newQueryVars) {
for (var newQueryVar in newQueryVars) {
newUrl += newQueryVar + "=" + newQueryVars[newQueryVar] + "&";
}
newUrl = newUrl.substring(0, newUrl.length-1);
window.location.href = newUrl;
} else {
window.location.href = location.href;
}
}

如何使用它

该函数接受对象文字作为其唯一参数。对象文字应包含您要用来重新加载页面的查询字符串变量。它考虑现有变量,并且如果您在传递的对象文字中指定它,它将覆盖现有变量。

所以,假设我们的位置是 http://localhost/helloworld.php,我想使用其值的查询字符串变量 foo 重定向到当前页面应该是 bar,我会按如下方式调用该函数:

reloadWithQueryStringVars({"foo": "bar"});

浏览器将导航至http://localhost/helloworld.php?foo=bar。如果我传递以下函数:

reloadWithQueryStringVars({"foo": "bar2"});

浏览器将导航至http://localhost/helloworld.php?foo=bar2

由于该函数接受对象文字,因此您可以将多个属性传递给该函数以获得多个查询字符串变量。如果我仍在 http://localhost/helloworld.php?foo=bar2 并且我调用函数如下

reloadWithQueryStringVars({"foo": "bar3", "answer": "42", "bacon": "tasty"});

浏览器将导航至http://localhost/helloworld.php?foo=bar3&answer=42&bacon=tasty

您的用例

但是,在回答这个问题时,您可以按如下方式调用该函数:

reloadWithQueryStringVars({"search": escape( $("#someId").val() )});

关于javascript - 使用 JavaScript 通过一些查询字符串将用户重定向到当前页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1309483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com