JavaScript和JavaScript的区别是什么
window.location.href = window.location.href
and
window.location.reload()
功能呢?
JavaScript和JavaScript的区别是什么
window.location.href = window.location.href
and
window.location.reload()
功能呢?
当前回答
从我3年的经验来看,我找不出有什么不同……
编辑:是的,就像他们中的一个说的,只有传递一个布尔参数给window.location.reload()是不同的。 如果你传递true,那么浏览器加载一个新页面, 但如果为false,则加载缓存版本…
其他回答
不,不应该有。但是,可能在某些浏览器中存在差异,因此在某些情况下,任何一种(或两种)都不能工作。
如果我没记错的话,window.location.reload()用POST数据重新加载当前页面,而window.location.href=window.location。href不包含POST数据。
正如@W3Max在下面的评论中所指出的那样,window.location.href=window.location. href。如果URL中有锚(#),href将不会重新加载页面-在这种情况下必须使用window.location.reload()。
同样,正如下面@Mic所指出的,window.location.reload()接受一个额外的参数skipCache,因此使用window.location.reload(true)浏览器将跳过缓存并从服务器重新加载页面。Window.location.reload (false)将做相反的事情,并在可能的情况下从缓存加载页面。
在我们的例子中,我们只是想在webview中重新加载页面,由于一些原因,我们找不到原因! 我们尝试了网络上几乎所有的解决方案,但无法使用location.reload()或其他解决方案,如window.location.reload(), location.reload(真实),…!
以下是我们的简单解决方案:
只需要使用< a >标签和空的“href”属性值,就像这样:
< a href="" ...>Click Me</a>
(在某些情况下,你必须在点击目标时使用“返回true”来触发重载)
更多信息请看这个问题: 空href是否有效?
从我3年的经验来看,我找不出有什么不同……
编辑:是的,就像他们中的一个说的,只有传递一个布尔参数给window.location.reload()是不同的。 如果你传递true,那么浏览器加载一个新页面, 但如果为false,则加载缓存版本…
如前所述,当url中存在散列(#)时修改href将不会重新加载页面。因此,我使用this来重载它,而不是正则表达式:
if (!window.location.hash) {
window.location.href = window.location.href;
} else {
window.location.reload();
}