location.hash用法

假设当前的URL是 http://example.com:1234/test.htm#part2:

<script type="text/javascript">

   document.write(location.hash);

</script>

结果为:

#part2

location.hash就是获取或设置喵链接的。
    当我们载入一个页面后,然后又去触发了一个AJAX请求去部分改变了页面上的内容,这个时候,你会发现,浏览 器其实并没有记录这两个动作,而是把这两个动作记录为了一个动作,即是认为你只打开一个页面,所以“前进/后退”按钮就没有用。无刷新的页面会导致我们丢失本该有的浏览器历史记录,通常我们需要通过url hash来手动的产生浏览器历史记录,从而使“后退”/“前进”按钮有效。有“后退”/“前进”功能的页面才是一个好页面。
   另外,即使不是AJAX动作,就是我们一些平常的JS动作,可能我们在JS里面改变了页面的数据、样式等,比如我们首先执行了JS函数A,把页面由白色变成了红色,在执行了JS函数B,把页面由红色变成了黑色,这个时候我想退回到页面为红色的状态,那么该怎么办?如果没有location.hash,我们只有重新载入页面,在去触发执行函数A,因为对于这些事件,浏览器是没有历史记录的,“前进、后退”按钮不能用的,这样显然太麻烦了,对用户不是很友好。有了location.hash我们就有办法了,在函数A和函数B里面加一段代码,location.hash=A这样,执行到该代码后,就相当于触发了喵链接,大家都知道喵链接是不会让页面重新载入的,只是在页面内部定位而已,所以不会造成其他坏的影响,但是细心的你会发现执行了该代码后,“前进、后退”按钮就可以用了,你可以从容的回退到你想要的任何一步操作了,真是方便,对用户也很友好。
   onhashchange事件就是当喵链接发生改变的时候触发的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值