使用jQuery更改URL和重定向

时间:2009-05-11 06:31:36

标签: javascript jquery url redirect

我有一些像这样的代码,

<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

8 个答案:

答案 0 :(得分:324)

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

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

  1. window.location.replace(url)用新的替换地址栏中的当前位置。调用该函数的页面不会包含在浏览器历史记录中。因此,在新位置,单击浏览器中的后退按钮将使您在访问包含重定向JavaScript的文档之前返回到您正在查看的页面。
  2. window.location = url重定向到新位置。在这个新页面上,浏览器中的后退按钮将指向包含重定向JavaScript的原始页面。
  3. 当然,两者都有自己的用例,但在我看来,在这种情况下你应该坚持使用后者。

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

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

答案 1 :(得分:39)

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

window.location(url);

应该是

window.location = url;

window.location引用的搜索会告诉您。

答案 2 :(得分:17)

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

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

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

window.location = url;

答案 3 :(得分:8)

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

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

答案 4 :(得分:3)

试试这个......

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

含义:

找到包含id“abc”的表单,将其更改为名为“action”的attribute,然后提交...

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

答案 5 :(得分: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>

答案 6 :(得分:0)

如果你真的想用 jQuery 做到这一点(为什么?)你应该让 DOM window.location 对象使用它的功能:

$(window.location)[0].replace("https://www.google.it");

请注意,[0] 告诉 jQuery 直接使用 DOM 对象,而不是封装 DOM 对象的 $(window.location) jQuery 对象。

答案 7 :(得分:0)

你可以这样做:

var url = "http://example.com/" + temp;
$(location).attr('href',url);