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的原始页面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)