window.location.href = window.location.href和JSLint

时间:2011-07-19 17:48:25

标签: javascript jslint

如果使用

window.location.href = window.location.href;

重新加载页面(没有重新发布)是不错的做法,我们应该如何处理JSLint的“奇怪的任务”投诉?

当您不想再次发布表单数据时,

编辑 window.location.reload()不适用。在某些浏览器中,它会引发“重新发送表单数据?”在不需要时最好避免使用。

更新我做了一些非常简短的测试,发现:

  • Mac上的Chrome 12和Safari 5.0.5不会使用.reload()
  • 重新发布
  • Mac上的FF 2.0,3.6,4.0,5.0向用户显示包含.reload().reload(true).reload(false)
  • 的“重新发送表单对话框”
  • IE中的IE6,IE8(标准),IE8(IE7模式,标准);和Win7中的IE9和IE10-tech-preview与Mac上的FF相同
  • window.location = window.location.href与所有这些浏览器中的window.location.href = window.location.href的工作方式相同。

这是the test script

3 个答案:

答案 0 :(得分:9)

试试这个

window.location = window.location.href;

答案 1 :(得分:1)

向自己分配一些东西确实是一项奇怪的任务。听起来像是一个警告而不是投诉。

我自己更愿意使用:

window.location.reload()

编辑:但是现在不会重新发布表单。这是关于同一件事的关于SO的帖子:php reload page without posting data

答案 2 :(得分:0)

这是一个奇怪的任务,JSLint是对的。问题是设置变量具有重新加载页面的副作用。我会将其编码为window.location.href = window.location.href + '';以避免JSLint错误并发表评论来解释它的作用。