Javascript 使用jQuery更改URL和重定向

Javascript 使用jQuery更改URL和重定向,javascript,jquery,url,redirect,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://exa

我有一些这样的代码

<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

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

window.location(url);
应该是

window.location = url;

对引用的搜索将告诉您。

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

jQuery只是javascript之上的一个库,即使使用jQuery,也可以使用普通javascript

顺便说一句,window.location不是一个函数,而是一个属性,您应该这样设置:

window.location = url;

正如其他答案中提到的,您不需要jQuery来完成这项工作;您可以只使用标准属性

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

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

    注意:您可能忘记了JavaScript第2行http:之后的两个斜杠:

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

    $("#abc").attr("action", "/yourapp/" + temp).submit();
    
    这意味着什么:

    查找id为“abc”的表单,更改其名为“action”的属性,然后提交

    这对我有用

    var temp="/yourapp/";
    $(location).attr('href','http://abcd.com'+temp);
    
    试试这个。。。
    作为一种替代方法

    您可以在没有jquery的情况下更简单地完成它

    location = "https://example.com/" + txt.value
    
    函数send(){
    位置=”https://example.com/“+txt.value;
    }
    
    
    发送
    如果您确实想使用jQuery执行此操作(为什么?),则应获取DOM window.location对象以使用其功能:

    $(window.location)[0].replace("https://www.google.it");
    
    请注意,[0]告诉jQuery直接使用DOM对象,而不是封装DOM对象的$(window.location)jQuery对象。

    您可以这样做:

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

    非常感谢大家!现在我仍然不知道window.location和window.location.replace之间有什么区别。在我的示例中,我只需要像这样将url发布到我的页面:让abc在我的数据库中搜索abc是用户输入的内容,然后按enter或button,但它们总是返回,所以我认为我可以在提交事件中触发重定向,并将我的url更改为我想要的内容,但它们仍然什么也不做。就这些,顺便说一下,再次谢谢你!我在这里解释了window.location和window.location.replace之间的区别:但是为了非常正确,您应该设置window.location.href而不是window.location。虽然这两种方法现在都可以使用,但后者是一个对象(当然,在古老的IE版本中不支持将字符串指定给…@Victor),它没有列出任何古老的IE版本@博宾斯的评论是正确的:减1。没有足够的jQuerydown投票来声明jQuery没有用于此目的的方法(即使这是不必要的过度使用,也不应推荐)$jq(window).attr(“location”(“location”);或$(location).attr('href',url);向上投票以撤消向下投票。Pim的响应可以很容易地理解为“jQuery中没有用于此目的的特定方法”。“在词汇语义上投反对票是对这种特权的滥用。投反对票是因为你知道。。。“jQuery中没有针对这个问题的特定方法”,这是对的,为什么您希望有这样一个丑陋的解决方案:$jq(window.attr(“location”,“yourdomain.com”);当您可以拥有类似window.location=url的内容时;哈哈,这是一些有趣的笑话!不过我喜欢这个主意。创新点!它不起作用,我也看不出它怎么会起作用。位置不是一个全球性的问题。窗口。位置是。编辑:是的。它不起作用,至少在chrome中不起作用。考虑更新你的例子,在我的Chrome,Firefox中。safari可以工作-位置是全局属性-例如,当我在chrome控制台中键入时:
    location=https://google.com“
    然后它会更改页面-您是否在其他浏览器上试用?@Shayne当您在控制台中键入
    this
    this.location
    时-您看到了什么?this.location仅在“this”时才起作用”指的是窗户。这种情况很少会发生。显式总是比隐式好,特别是如果您不想在代码不可移植或不可重用时感到惊讶是的,您是对的-但是我想知道:为什么在您的浏览器中
    这个
    不引用
    窗口
    对象(而上面的代码片段不起作用)?(在浏览器全局上下文中,应将其设置为windows)