码迷,mamicode.com
首页 > Web开发 > 详细

对URL hash的操作

时间:2015-09-15 21:45:41      阅读:755      评论:0      收藏:0      [点我收藏+]

标签:

一、什么是hash?如何获取hash?

   hash 是 HTML DOM location 对象的一个属性,它是存储 URL 锚部分(从 # 号开始的部分)的一个字符串。hash的变化不会引起浏览器的重新刷新,具体获取hash的代码如下:

var hash = window.location.hash;

 需要注意的是firefox会对location.hash获取的字符串进行解码,如果有相关操作请使用以下代码:

var url = window.location.href;
var index = url.indexOf(‘#‘);
var hash = index == -1 ? ‘‘ : url.slice(index);
return hash;

 

二、监听hash执行相应逻辑

 javascript提供了事件hashchange来进行对hash的监听,该事件对象下有两个属性:oldURL与newURL。应该注意的是该事件只兼容IE8+的IE浏览器,所以下面我们使用脚本模拟该事件,在window.onhashchange上绑定事件处理函数。

(function(window) {    
// 自执行匿名函数 // 如果浏览器原生支持该事件,则退出 if ( "onhashchange" in window.document.body ) { return; } var location = window.location, oldURL = location.href, oldHash = location.hash; // 每隔100ms检测一下location.hash是否发生变化 setInterval(function() { var newURL = location.href, newHash = location.hash; // 如果hash发生了变化,且绑定了处理函数... if ( newHash != oldHash && typeof window.onhashchange === "function" ) { // execute the handler window.onhashchange({ type: "hashchange", oldURL: oldURL, newURL: newURL }); oldURL = newURL; oldHash = newHash; } }, 100); })(window);

 

对URL hash的操作

标签:

原文地址:http://www.cnblogs.com/timl525/p/4810849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!