location.hash记录
基础
1、#含义
#可以看做在网页中的位置,#后面的内容,就是该位置的一个标识符,例如:#a1,浏览器解析到这个位置时,会将a1的位置滚动到浏览器的可视区域。
主要功能:跳转到当前页面中的内容,可以增加历史记录,并且在地址栏增加#内容。
为网页增加标识符的办法:
-
使用锚点比如使用a链接
<a href="#a1">点击</a>
-
使用id属性
<div id="print" >
2、http请求
#是用来指导浏览器动作的,对服务器端完全无用,因此http请求不包括#,如下图所示,只请求到index.html位置,
3、改变hash内容不会造成浏览器页面的刷新
每一次改变#后面的内容,都会在浏览器上自动增加浏览器的一条历史记录,使用“后退”按钮,就可以自动回到上一次的位置,hash改变不会造成浏览器的刷新页面。
4、window.location.hash读取#值
window.location.hash这个属性是可读可写的,即用户自己可以进行更改,写入时,可以在不重新加载网页的情况下创造一条新的历史记录。
5、onhashchange事件
创造一条新的历史记录。
5、onhashchange事件
可以监控hash的变化,当#值发生改变是,就会触发这个事件。