location.href=url 和 location.assign(url) 和 location.replace(url) 和 location.reload()

location.href=url 和 location.assign(url) 和 location.replace(url) 和 location.reload()

  • location.href=url 效果类似 location.assign(url) , 相当于跳转新页面, 可以后退
  • location.replace(url) , 是改变当前页面的地址, 不能后退
  • location.reload() , 作用是刷新, 没有参数

location.href

在这里插入图片描述

location===window.location
true
location===document.location
true
location===window.document.location
true

MDN说: Location 接口的 href 属性是一个字符串化转换器 (stringifier), 返回一个包含了完整 URL 的 USVString 值,且允许 href 的更新。

location.href是可以读写的,可以赋值和取值
  • url = location.href 取值时, 等同于 url = document.URLurl = document.documentURI
  • 当赋值时, location.href=urllocation.assign(url) 近似或相同

location.assign(url)

MDN: Location.assign()

Location.assign() 方法会触发窗口加载并显示指定的 URL 的内容。

如果由于安全原因无法执行跳转,那么会抛出一个 SECURITY_ERROR 类型的 DOMException。当调用此方法的脚本来源和页面的 Location 对象中定义的来源隶属于不同域的时候,就会抛出上述错误。

如果传入了一个无效的 URL,则会抛出一个 SYNTAX_ERROR 类型的 DOMException。

location.replace(url)

MDN: Location.replace()

Location.replace() 方法以给定的 URL 来替换当前的资源。与 assign() 方法 不同的是,调用 replace() 方法后,当前页面不会保存到会话历史中(session History),这样,用户点击回退按钮时,将不会再跳转到该页面。

因违反安全规则导致的赋值失败,浏览器将会抛出类型为 SECURITY_ERROR 的 DOMException 异常。当调用该方法的脚本所属的源与拥有 Location 对象所属源不同时,通常情况会发生这种异常,此时通常该脚本是存在不同的域下。

如果 URL 无效,浏览器也会抛出 SYNTAX_ERROR 类型的 DOMException 异常。

location.reload()

MDN: location.reload() 方法用来刷新当前页面,就像刷新按钮一样。

该方法在跨域调用(执行该方法的脚本文件的域和 Location 对象所在页面的域不同)时,将会抛出 SECURITY_ERROR DOMException 异常。有关更多信息,请参阅浏览器的同源策略。

MDN: location.reload() 没有参数 ,(标准没有参数, Firefox特殊)
location.reload() 没有参数
Firefox 对于该方法支持一个非标准的 forceGet boolean 参数 ,当值为 true 时,将强制 Firefox 从服务器加载页面资源。但是在其他浏览器中任何参数都是无效的,location.reload() 执行时将会忽略它们并且不会有任何效果。

不过你可能会看到在现有的代码中写入 location.reload(true) 并假装硬性重新加载在所有浏览器中均生效的使用方式。在 GitHub 中搜索 “location.reload(true)” 将会得到 成千上万个结果。所以现在有大量的现有代码中包含它。

由于一些历史的原因,网景浏览器的一些版本添加了对它的支持,显然被继承到了 Firefox 中。并且一度被 W3C Web APIs 工作组作为一个提案来考虑添加到 location.reload() 中。但是它从未实际实现过。

因此 boolean 参数当前不符合 location.reload() 的规范。— 实际上它从未成为 location.reload() 的规范。

你可能感兴趣的:(HTML,CSS,JS,#,Js,JavaScript,ECMAScript,浏览器Browser,前端,javascript,ecmascript)