我知道如何使用 window.location。问题是,(至少在 FF 中)它会从历史记录中删除您所在的页面。例如,我在页面 A,我导航到 B,window.location 用于将我发送到 C。如果在页面 C,我点击返回,我最终在 A,而不是 B。
有没有其他方法可以在不从历史记录中删除当前页面的情况下导航到另一个页面?
编辑:如果您在 Firebug 中运行代码,则不会发生这种情况。
这是一个显示问题的超级简单页面(是的,我知道代码很丑,它不是真正的代码):
<html>
<head><script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"> </script>
<body>
<div class="foo"></div>
<a href="javascript:$('.foo').html('<scri'+'pt type="text/javascript">window.location = "c.html"</s'+'cript>');">b</a>
EDIT2:jQuery 是问题所在,setTimeout
也是答案。我在下面添加了我的解决方案,以防其他人遇到这种奇怪的边缘情况。
EDIT3:这个例子被简化以使其更容易测试。在实际情况下,点击处理程序会进行一个返回 HTML 的 Ajax 调用,因此我们不能通过编写 window.location = 不管来简化整个事情。代码来自服务器,嵌入在 HTML 中。