Javascript位置详细信息

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简单应用

一、#的涵义

#代表网页遭到的一个岗位。其右对之字符,就是该职位的标识符。比如,

  http://www.example.com/index.html\#print

虽意味着网页index.html的print位置。浏览器读取这个URL后,会自动将print位置滚动至而张区域。

否网页位置指定标识符,有点儿只方式。

一样凡是行使锚点,比如<a
name=”print”></a>,

第二凡是以id属性,比如<div id=”print” >。

仲、HTTP请求不包#

#大凡用来指导浏览器动作之,对劳动器端完全不行。所以,HTTP请求中无包括#。

据,访问下面的网址,

  http://www.example.com/index.html\#print

浏览器实际产生之求是这么的:

  GET /index.html HTTP/1.1

  Host: www.example.com

好看来,只是要index.html,根本没”#print”的部分。

三、#晚底字符

每当首先独#后面出现的其余字符,都见面于浏览器解读为位置标识符。这意味着,这些字符都未会见被发送到劳动器端。

论,下面URL的本心是指定一个颜色值:

  http://www.example.com/?color=\#fff

但,浏览器实际发生之求是:

  GET /?color= HTTP/1.1

  Host: www.example.com

好望,”#fff”被略去了。只有以#转码为%23,浏览器才见面拿该作实义字符处理。也就是说,上面的网址应该于勾勒成:

  http://example.com/?color=%23fff

四、改变#不触发网页重载

仅改变#晚的一些,浏览器就会滚动到相应位置,不会见又加载网页。比如,从

  http://www.example.com/index.html\#location1

改成

  http://www.example.com/index.html\#location2

浏览器不会见更为服务器请求index.html。

五、改变#会晤转浏览器的顾历史

各个一样涂鸦反#继底一些,都见面以浏览器的走访历史受到追加一个记录,使用”后退”按钮,就得回去上一个职

顿时对ajax应用程序特别发因此,可以为此不同的#价,表示不同之访状态,然后为用户被出好看有状态的链接。

值得注意的是,上述规则对IE
6和IE 7不立,它们不会见盖#的改动如果充实历史记录。

六、window.location.hash读取#值

window.location.hash这个特性可读而写。读取时,可以据此来判断网页状态是不是变动;写副常,则会在无还载网页的前提下,创造平等久访问历史记录。

七、onhashchange事件

即是一个HTML 5初长的风波,当#价值发生变化时,就会见沾这个波。IE8+、Firefox 3.6+、Chrome 5+、Safari 4.0+支持该事件。

它们的下方式来三种植:

  window.onhashchange =
func;

  <body
onhashchange=”func();”>

  window.addEventListener(“hashchange”,
func, false);

对于免支持onhashchange的浏览器,可以就此setInterval监控location.hash的变化。

八、Google抓取#的机制

默认情况下,Google的网络蜘蛛忽视URL的#部分。

唯独,Google还确定,如果你希望Ajax生成的情节为浏览引擎读取,那么URL中可以使用”#!”,Google会自动将那个后面的情节改动成查询字符串_escaped_fragment_的值。

遵照,Google发现新本子twitter的URL如下:

  http://twitter.com/\#!/username

即使会见活动抓取另一个URL:

  http://twitter.com/?\_escaped\_fragment\_=/username

透过这种机制,Google就可索引动态的Ajax内容。上海尚学堂Java培训原创,请多关注,陆续来web前端技术相关文章奉上!

 

相关文章