// location // window.location 只读属性,返回一个 Location 对象,其中包含有关文档当前位置的信息。 // 尽管 window.location 是一个只读 Location 对象,你仍然可以赋给它一个 DOMString。这意味着您可以在大多数情况下处理 location,就像它是一个字符串一样:window.location = 'www.example.com',是 window.location.href = 'www.example.com'的同义词。
// 属性
// Location 接口的 hash 属性返回一个 USVString,其中会包含 URL 标识中的 和 后面 URL 片段标识符。'#'
// 这里 fragment 不会经过百分比编码(URL 编码)。如果 URL 中没有 fragment,该属性会包含一个空字符串,""
console.log(location.hash);
// Location 接口的 host 属性是包含了主机的一段 USVString,其中包含:主机名,如果 URL 的端口号是非空的,还会跟上一个 ':' ,最后是 URL 的端口号。
console.log(location.host);
// Location 接口的 href 属性是一个字符串化转换器 (stringifier), 返回一个包含了完整 URL 的 USVString 值,且允许 href 的更新。
console.log(location.href);
// Location 接口的 pathname 属性是一个字符串,其中包含位置的 URL 路径。如果没有路径,将为空:否则,包含一个首字母“/”,后跟 URL 的路径,不包括查询字符串或片段。pathnamepathname
console.log(location.pathname);
// Location 接口的 port 属性是包含 URL 端口号的字符串。如果 URL 不包含显式端口号,它将设置为 。''
console.log(location.port);
// Location 接口的 search 属性会返回一段 USVString,其中包含一个 URL 标识中的 以及跟随其后的一串 URL 查询参数。'?'
// 现代浏览器提供 URLSearchParams 和 URL.searchParams 两个接口,使得从查询字符串中解析出查询参数变得更加容易。
console.log(location.search);
// 方法
// Location.assign() 方法会触发窗口加载并显示指定的 URL 的内容。
// 如果由于安全原因无法执行跳转,那么会抛出一个 SECURITY_ERROR 类型的 DOMException。当调用此方法的脚本来源和页面的 Location 对象中定义的来源隶属于不同域的时候,就会抛出上述错误。
// 如果传入了一个无效的 URL,则会抛出一个 SYNTAX_ERROR 类型的 DOMException。
location.assign("https://www.baidu.com/?tn=15007414_12_dg")
// location.reload() 方法用来刷新当前页面,就像刷新按钮一样。
// 该方法在跨域调用(执行该方法的脚本文件的域和 Location 对象所在页面的域不同)时,将会抛出 SECURITY_ERROR DOMException 异常。有关更多信息,请参阅浏览器的同源策略。
location.reload()
// Location.replace() 方法以给定的 URL 来替换当前的资源。与 assign() 方法 不同的是,调用 replace() 方法后,当前页面不会保存到会话历史中(session History),这样,用户点击回退按钮时,将不会再跳转到该页面。
// 因违反安全规则导致的赋值失败,浏览器将会抛出类型为 SECURITY_ERROR 的 DOMException 异常。当调用该方法的脚本所属的源与拥有 Location 对象所属源不同时,通常情况会发生这种异常,此时通常该脚本是存在不同的域下。
// 如果 URL 无效,浏览器也会抛出 SYNTAX_ERROR 类型的 DOMException 异常。
location.replace("https://www.baidu.com/?tn=15007414_12_dg")
// toString()Location接口的 stringifier 方法返回包含整个 URL 的USVString}。它是Location.href的只读版本。
location.toString()