2012-04-26 67 views
1

我目前正在研究这个非常简单的基于文本的游戏并再次播放,您必须刷新页面。这似乎在Opera和Chrome中起作用,但它不会重置Firefox中的页面。这是我正在使用的功能。在Firefox中使用JavaScript刷新页面

$(function() { 
    $('#play_again').click(function() { 
     var answer = confirm ("Reset the game?") 
     if (answer) { 
     window.location.reload(); 
     } 
    }); 
}); 

我认为Firefox是缓存的页面或东西。我怎么能做这个工作?

+0

尝试history.go(0)正如我在回答表明... – 2012-04-26 18:06:05

+0

是不是对你有帮助???????????? – 2012-04-26 18:53:47

+0

我最终使用Jakob的答案,但谢谢。 – 2012-04-28 19:57:10

回答

3

这是一件很困难的事,但你可以欺骗IE的和Firefox的缓存,以为这是一个新的页面中添加一个随机的查询字符串。你可以尝试像

window.location.href = window.location.href + '?refresh'; 
+0

谢谢,这工作。 – 2012-04-27 01:57:28

+0

很高兴我可以帮助 – Jakob 2012-04-27 08:56:13

1

尝试

$(function() { 
    $('#play_again').click(function() { 
     var answer = confirm("Reset the game?") 
     if (answer) { 
      $("form").each(function() { 
       this.reset(); 
      }); 
      window.location.reload(); 
     } 
    }); 
}); 
+1

这并不回答这个问题,他有令人耳目一新的问题:) – Sarfraz 2012-04-26 17:46:10

+0

它似乎仍然没有工作。如果我在本地主机上,它会改变事情吗?我是否应该将它重定向到相同的地址,也许? – 2012-04-26 17:46:36

+0

@Sarfraz它可以工作,Firefox不会清除像铬一样刷新窗体:P – Esailija 2012-04-26 17:47:15

4

而不是使用window.location.href的,我建议使用window.location.replace。为什么?因为href会在浏览器历史记录中添加一个新条目。这可能不是你期望的行为。

window.location.replace(window.location.href) 
1

这工作:

document.location=document.location; 
+0

单独的代码块并不能提供很好的答案。请添加解释(为什么它解决了问题,错误在哪里等) – 2016-01-08 12:33:31