我有一些像这样的代码,
<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
。
答案 0 :(得分:324)
正如其他答案所述,你不需要jQuery来做这件事;你可以使用标准属性。
但是,您似乎并不知道window.location.replace(url)
和window.location = url
之间的区别。
window.location.replace(url)
用新的替换地址栏中的当前位置。调用该函数的页面不会包含在浏览器历史记录中。因此,在新位置,单击浏览器中的后退按钮将使您在访问包含重定向JavaScript的文档之前返回到您正在查看的页面。window.location = url
重定向到新位置。在这个新页面上,浏览器中的后退按钮将指向包含重定向JavaScript的原始页面。当然,两者都有自己的用例,但在我看来,在这种情况下你应该坚持使用后者。
P.S。:您可能在JavaScript的第2行http:
之后忘记了两个斜杠:
url = "http://abc.com/" + temp;
答案 1 :(得分:39)
答案 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);