Javascript window.location.href - 刷新页面而不是重定向
Posted
技术标签:
【中文标题】Javascript window.location.href - 刷新页面而不是重定向【英文标题】:Javascript window.location.href - Refreshes page instead of redirecting 【发布时间】:2013-07-18 23:42:08 【问题描述】:我正在使用 window.location.href 重定向我的浏览器,但我不确定为什么一个有效而一个无效。当我使用相对链接时,它会刷新当前页面。当我使用完整的网址时,它会重定向。我所在的页面和 Process.aspx 页面位于同一目录级别。所以我应该能够有一个相对链接?当我这样做时,它只是重新加载我所在的当前页面。关于 window.location.href,我缺少什么基本概念?
$(document).ready(function()
$( "button" )
.button();
$("#cancel")
.click(function( event )
alert("click");
//Below Line Doesn't work
window.location.href = "/Process.aspx";
//Below Line Does work
window.location.href = "http://localhost:65215/Process.aspx";
);
);
【问题讨论】:
“不起作用”是什么意思?会发生什么? 希望对预期输出与实际输出的解释优于“不起作用” 无法测试...删除/
..?
对不起,我会编辑和澄清。 :( @Stefan,/ 不会改变它。
这可能会有所帮助:***.com/questions/503093/… 或此***.com/questions/1655065/…
【参考方案1】:
有点边缘情况,但是如果您将事件侦听器添加到其中带有锚标记的容器 div,并且您希望使每个容器 div(而不仅仅是锚标记)可点击,然后重定向到锚标记的href attribute
中包含的链接。在这种情况下,您需要包含 event.preventDefault()
以防止这种行为。
原版 JS
document.getElementById("myAnchorDiv").addEventListener("click", function(event)
event.preventDefault();
//get url
URL = ...
//Below Line should now work
window.location.href = URL;
);
jQuery
$("#myAnchorDiv").on("click", function( event )
event.preventDefault();
//get url
URL = ...
//Below Line should now work
window.location.href = URL;
);
如果你愿意,你当然可以将最后两行代码组合成一行代码,例如window.location.href = [your URL];
【讨论】:
【参考方案2】:试试这个:
window.location = window.location.protocol +
'//' +
window.location.hostname +
window.location.pathname;
【讨论】:
【参考方案3】:您可以尝试仅刷新页面的 hack,您可以实现 onclick="location.href='wherever'"
,然后第二个 href="/Process.aspx"
onclick
将首先被触发,href
将带您返回。
【讨论】:
【参考方案4】:试试:location.href = location.origin + "/Process.aspx";
【讨论】:
【参考方案5】:从Mozilla Developer Network documentation 开始,href
是页面的整个 URL。该列表中唯一的相对属性是 path
,它与页面的主机或域相关。
您可能还想看看使用reload
或replace
方法。见How to redirect to another webpage in javascript/jQuery?
【讨论】:
Replace 会模拟重定向,但我不想模拟重定向?我只想有一个相对路径?那么我唯一的选择是解析当前的位置字符串吗? 我认为解析当前位置字符串将是您的最佳选择。以上是关于Javascript window.location.href - 刷新页面而不是重定向的主要内容,如果未能解决你的问题,请参考以下文章
Arison [JS]window.location获取url各项参数详解
window.location.href=window.location.href 和 window.location.reload() 的区别