Javascript window.location.reload()从何处获取其值?

Javascript window.location.reload()从何处获取其值?,javascript,html,Javascript,Html,尝试在不使用片段标识符(即散列符号#)的情况下重新加载当前页面,并使用以下代码位执行此操作,以确保正确运行: var path = window.location.href.replace(/(\#.*)/,''); window.location = path; 我还知道上面的第二行可以读取window.location.href=path这让我进入下一部分 在得出上述代码之前,我们尝试了: var path = window.location.href.replace(/(\#.*)/,'

尝试在不使用片段标识符(即散列符号#)的情况下重新加载当前页面,并使用以下代码位执行此操作,以确保正确运行:

var path = window.location.href.replace(/(\#.*)/,'');
window.location = path;
我还知道上面的第二行可以读取
window.location.href=path这让我进入下一部分

在得出上述代码之前,我们尝试了:

var path = window.location.href.replace(/(\#.*)/,'');
window.location.href = path;
window.location.reload();
但是,这对我们不起作用,因为
href
值似乎没有设置,我感觉
reload()
是在调用
href=path
位之前或之前调用的

这让我很好奇,
reload()
函数用于
window.location
从何处获取其值以重新加载页面

如果我在片段标识符(可能是目录)之间跳转的页面上单击,则地址栏会相应地更新,调用时,
window.location.reload()
将使用正确的片段执行此操作。但是,如果我在地址栏中手动键入某个内容,然后调用
reload()
函数,它将不会使用我的手动输入加载,而是使用最后一个“计算机定义”值加载

我猜是用户代理(在这个特殊的例子中是Chrome44)正在监听和更新每次与DOM交互或在窗口内进行交互所需的值。我查看了和文档以获取信息,要么它不在那里,要么我太密集而无法找到/理解它

有谁能向我解释一下
reload()
从何处获取它的值,以及它是如何通过用户与页面的交互来更新的

在这种情况下,使用
window.location=path
window.location.href=path
之间的确切区别是什么?

如果要删除url中必须显式设置的“#”部分:

window.location.hash = ""
然后调用window.location.reload()

window.location=path
只不过是
window.location.href=path

导航成功后位置(值)才会改变!换句话说,
location
实例表示当前加载的页面(包括片段)

将新值分配给
window.location.href
(重新)将加载页面


因此,当您调用
window.location.href=path浏览器希望加载新URL(不带#的URL)。但是如果您立即调用
window.location.reload()
这就像说“不,等等!重新加载当前页面(带#)的页面)”

这是有效的回答我不知道
window.location.hash是可能的,所以可以加1,但是使用您所说的代码仍然保留一个尾随“#”。我的问题不是关于删除散列,而是关于
reload()
函数。同意
reload()
函数现在按预期工作,但它仍然不认为这回答了我关于
reload()
在使用什么的问题。为什么“window.location.href=path”不能以相同的方式工作并设置一个值?也许需要有人在这里帮忙@MarcosPérezGude似乎同意您@pinturic的观点,所以也许你们两个都可以提供更多细节。window.location.reload函数重新加载当前文档(),以便使用用于在浏览器中填充文档的url。当您仅通过更改散列来更改位置时,页面不会重新加载,而只是浏览器试图理解url的“散列”部分,例如查找锚标记