本系列随笔是本人的学习笔记,初学阶段难免会有理解不当之处,错误之处恳请指正。转载请注明出处:https://www.cnblogs.com/itwhite/p/12244592.html。
location 属性:标识当前文档的URL信息
location 属性用于标识当前页面的 URL 信息。
location 属性值是一个 Location 对象,其中包含 href、hostname、port、protocol 等属性以及 reload()、assign() 等方法,示例(假设当前页面地址为:http://a.b.c.d:8000/?q=test&action=query):
origin: "http://a.b.c.d:8000" protocol: "http:" host: "a.b.c.d:8001" hostname: "a.b.c.d" port: "8001" pathname: "/" search: "?action=query&string=test" // 查询参数,问号及后面的内容 hash: "" href: "http://a.b.c.d:8000/?action=query&string=test" assign: ƒ assign() // 可以用于重定向页面,与赋值给 window.location 效果类似 reload: ƒ reload() replace: ƒ replace() // 类似与 assign(),区别在于 assign() 操作后,当前页面会保留在历史记录中,而 replace() 则会从历史记录中删除当前页面
关于 Location 对象的属性和方法的更多描述,请参考:https://www.w3.org/TR/html52/browsers.html#the-location-interface。
通过修改 location 对象的值,可以实现页面重定向,例如:
window.location = "https://www.baidu.com/"; // 跳转到百度首页 // 或者 window.location.href = "https://www.baidu.com/"; // 跳转到百度首页,与上面的代码效果一样
document 对象也包含一个 location 属性,它与 window 对象的 location 指向同一个对象,例如:
console.log(window.location === document.location); // true
history 属性:浏览历史记录
history 属性用于访问当前窗口的浏览历史记录,通过它可以实现类似于浏览器中的“前进”、“后退”按钮的功能,但不能直接访问历史记录中的URL信息(这是出于保护用户隐私的原因)。
history 引用的是 History 对象,其中包含一个 length 属性(用于记录历史记录数目)和 back()、forward()、go() 等函数。
更多关于 History 对象的描述请参考:https://www.w3.org/TR/html52/browsers.html#the-history-interface。
完。