使用jQuery更改URL和重定向

问题描述 投票:123回答:6

我有一些像这样的代码,

<form id="abc">
  <input type="text" id="txt" />
</form>

现在我想像这样重定向,

var temp = $("#txt").val();
url = "http://example.com/" + temp;
window.location.replace(url);
// or window.location(url);

无论如何在jQuery中解决这个问题?它仍然让我有url = http://example.com

javascript jquery url redirect
6个回答
330
投票

正如其他答案中所提到的,你不需要jQuery来做这件事;你可以使用标准属性。

但是,似乎你似乎并不知道window.location.replace(url)window.location = url之间的区别。

  1. window.location.replace(url)用新的替换地址栏中的当前位置。调用该函数的页面不会包含在浏览器历史记录中。因此,在新位置,单击浏览器中的后退按钮将使您在访问包含重定向JavaScript的文档之前返回到您正在查看的页面。
  2. window.location = url重定向到新位置。在这个新页面上,浏览器中的后退按钮将指向包含重定向JavaScript的原始页面。

当然,两者都有它们的用例,但在我看来,在这种情况下你应该坚持使用后者。

P.S。:您可能在JavaScript第2行的http:之后忘记了两个斜杠:

url = "http://abc.com/" + temp;

40
投票

告诉你真实的,我仍然没有得到你需要的,但是

window.location(url);

应该

window.location = url;

搜索window.location参考将告诉你。


17
投票

jQuery没有这个选项,也没有选项。这是完全有效的javascript,jQuery没有理由为此提供包装函数。

jQuery只是一个基于javascript的库,即使你使用jQuery,你仍然可以使用普通的javascript。

btw window.location不是一个函数,而是一个你应该像这样设置的属性:

window.location = url;

8
投票
var temp="/yourapp/";
$(location).attr('href','http://abcd.com'+temp);

试试这个...用作替代方案


3
投票

试试这个...

$("#abc").attr("action", "/yourapp/" + temp).submit();

这是什么意思:

找到一个表格与id“abc”,改变它的attribute名为“行动”,然后提交它...

这对我有用...... !!!


0
投票

没有jquery你可以更简单

location = "https://example.com/" + txt.value

function send() {
  location = "https://example.com/" + txt.value;
}
<form id="abc">
  <input type="text" id="txt" />
</form>

<button onclick="send()">Send</button>
© www.soinside.com 2019 - 2024. All rights reserved.