hashchange事件

什么是hashchange事件?

hash即URL中“#”字符后面的部分。使用浏览器访问网页时,如果网页URL中带有hash,页面就会定位到id(或name)与hash值一样的元素的位置,故而又称之为锚点。hash还有另一个特点,它的改变不会导致页面重新加载,因此在单页应用流行的当下,它的用处就更多了。通过window.location.hash属性获取和设置hash值。

而hashchange事件,顾名思义,就是hash改变时触发的事件。

window.location.hash值的变化会直接反应到浏览器地址栏(#后面的部分会发生变化),同时,浏览器地址栏hash值的变化也会触发window.location.hash值的变化,从而触发onhashchange事件。

hashchange事件(IE8已支持该事件)

  当URL的片段标识符更改时,将触发hashchange事件(跟在#符号后面的URL部分,包括#符号)

  hashchange事件触发时,事件对象会有hash改变前的URL(oldURL)和hash改变后的URL(newURL)两个属性:

window.addEventListener('hashchange',function(e) { console.log(e.oldURL);  console.log(e.newURL) },false);

window.location.href和window.locaiton.hash

(1)window.location.href  得到的是完整的URL

        比如:window.location.href = ' www.baidu.com'

(2)window.location.hash  得到的是锚链接

        比如:window.location.hash= ' #all'

(3)window.location.search得到的是URL‘?’号后面的字符串部分

        www.baidu.com/?username=aaa&age=10

        比如:window.location.search= ' ?username=aaa&age=10'

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容