location.hash的不一样用法

  

  除了可以当做锚点,定位到同name位置,location.hash还有两个用法。

  平时开发都会用得到。

  一:使js事件在浏览器中产生历史记录。

    举个栗子:

      我们在JS里面改变了页面的数据、样式等,比如我们首先执行了JS函数A,把页面由白色变成了红色,在执行了JS函数B,把页面由红色变成了黑色,这个时候我想退回到页面为红色的状态,那么该怎么办?如果没有location.hash,我们只有重新载入页面,在去触发执行函数A,因为对于这些事件,浏览器是没有历史记录的,“前进、后退”按钮不能用的,这样显然太麻烦了,对用户不是很友好。有了location.hash我们就有办法了,在函数A和函数B里面加一段代码,location.hash=A这样,执行到该代码后,就相当于触发了喵链接,大家都知道喵链接是不会让页面重新载入的,只是在页面内部定位而已,所以不会造成其他坏的影响,但是细心的你会发现执行了该代码后,“前进、后退”按钮就可以用了,你可以从容的回退到你想要的任何一步操作了,就像你在执行函数时种下了历史记录一样。 onhashchange事件就是当喵链接发生改变的时候触发的。

      IE 的部份,IE8 之后才有支持:「onhashchange Event

      Firefox 則是 3.6 之后才有支持:「window.onhashchange

  二:用户使用网址直接访问旧页面。

   首先要知道,如果在浏览器地址中输入网址,发送请求,服务器是只能接受地址的,但是不带hash值,举个栗子:

    比如在浏览器中输入 :

http://fis.baidu.com/#simple

    服务器接受的却是这个:

http://fis.baidu.com

    也就是说,在服务器中,是无法请求回来一个带hash值的页面的。

    那么这个问题,就要留在客户端来解决,这就使用到了location.hash。

    举个栗子:    

      比如,我们的页面上有三个功能:A、B、C,我们要分别给它们分配一个hash值:#A、#B、#C,在页面初始化的时候,通过window.location.hash来判断用户需要访问的页面,然后通过javascript来调整显示页面。

      代码:  

var hash;
hash=(!window.location.hash)?"#search":window.location.hash;
window.location.hash=hash;
  //调整地址栏地址,使前进、后退按钮能使用
switch(hash){
case "#A":
    //显示A所代表的面板
    break;
case "#B":
      //显示B所代表的面板
    break;
case "#C":
     //显示C所代表的面板
    break;
}

  

  总结一下:

  1.通过window.location.hash=hash这个语句来调整地址栏的地址,使得浏览器里边的“前进”、“后退”按钮能正常使用(实质上欺骗了浏览器)。

  2.根据hash值的不同来显示不同的面板(用户可以收藏对应的面板了)。

  其实两种用法都是一个意思,但是这样说,可能会让你很明白。

  

时间: 2024-11-05 02:21:44

location.hash的不一样用法的相关文章

window.location.hash 页面跳转,精确定位,实例展示:

window.location.hash 页面跳转,精确定位,实例展示: (1).index.phtml,页面用于传参 <script id="bb_list_template" type="text/x-dot-template"> <a title="点击查看宝贝详情" href="<?php echo APP_WEB_INDEX_ROOT?>/item/itemdetail<?php echo

window.location.hash的知识点

本文给大家详细汇总了关于window.location.hash的知识点,属性以及用法等等,非常的实用,并附上了例子,有需要的小伙伴可以参考下. location是javascript里边管理地址栏的内置对象,比如location.href就管理页面的url,用location.href=url就可以直接将页面重定向url.而location.hash则可以用来获取或设置页面的标签值.比如http://domain/#admin的location.hash="#admin".利用这个属

window.location.hash的简单了解

location是javascript里边管理地址栏的内置对象,比如location.href就管理页面的url,用location.href=url就可以直接将页面重定向url.而location.hash则可以用来获取或设置页面的标签值.比如http://domain/#admin的location.hash="#admin".利用这个属性值可以做一个非常有意义的事情. 很多人都喜欢收藏网页,以便于以后的浏览.不过对于Ajax页面来说的话,一般用一个页面来处理所有的事务,也就是说,

location.hash的解释

下面是摘抄自博主 吊儿郎当 的一篇关于hash的解释,觉得说的很有道理,摘抄下来方便自己可以随时复习,巩固!! 1.#的含义 #代表网页中的一个位置.其右面的字符,就是该位置的标识符.如: http://www.example.com/index.html#print 就代表网页index.html的print位置.浏览器读取这个URL后,会自动将print位置滚动至可视区域. 为网页位置指定标识符,有两个方法,一个是锚点<a name="print"></a>

location.hash &amp;&amp; location.href

hash:设置或获取 href 属性中在井号“#”后面的分段. href:设置或获取整个URL为字符串. 通过下面的测试你会发现区别,将代码放到你的HTML中,然后用浏览器打开,测试步骤: 点击“超链接”,你会发现在地址栏URL发生了变化,URL后面多了一个“#foo”. 点击"href",你会发现弹出的是地址栏的URL地址. 点击"hash",你会发现弹出的是#foo. <a href="#foo">超链接</a> &l

jQuery跨站脚本漏洞XSS with $(location.hash)漏洞

jquery下载地址:https://code.jquery.com/jquery/ 影响范围: 版本低于1.7的jQuery过滤用户输入数据所使用的正则表达式存在缺陷,可能导致LOCATION.HASH跨站漏洞 已测试成功版本:     jquery-1.6.min.js,jquery-1.6.1.min.js,jquery-1.6.2.min.js     jquery-1.5所有版本     jquery-1.4所有版本     jquery-1.3所有版本     jquery-1.2所

window.location.hash属性介绍

location是javascript里边管理地址栏的内置对象,比如location.href就管理页面的url,用location.href=url就可以直接将页面重定向url.而location.hash则可以用来获取或设置页面的标签值.比如http://domain/#admin的location.hash="#admin".利用这个属性值可以做一个非常有意义的事情. 很多人都喜欢收藏网页,以便于以后的浏览.不过对于Ajax页面来说的话,一般用一个页面来处理所有的事务,也就是说,

location.hash来保持页面状态

/*本例是为了在客户端页面返回时保存状态,采用hash值记录的模式,为了使用方便所写的存取hash值的库,时间仓促,望指出错误.*/var pageStateHash = { hashArray: [], getHashArray: function() { var _self = this; if (window.location.hash.replace('#','') != '') { _self.hashArray = window.location.hash.replace('#','

window.location.hash 使用说明

location是javascript里面管理地址栏的内置对象. 比如loation.href是 页面的url .但是 location.hash可以获取或设置页面的 标签值 比如http://domain/#testDemo中 咱们的location.hash 就是 #testDemo  下面引用一个 网上的demo 一个搜索版块,功能有3个:普通搜索,高级搜索,后台管理,分别指明他们各自的hash 值:#search,#advsearch,#adminboss. 在页面初始化的时候,通过wi