1. 井号在URL中指定的是页面中的一个位置
井号在URL中显示为页面定位器。 例如,如http://www.httpwatch.com/features.htm # print所示,此URL表示页面features.htm上的print的位置。 当浏览器读取此URL时,打印位置会自动滚动到显示区域。
要向页面添加锚点,请使用a name=”print”/a或div id=”print "。
2.井号后面的数据不会发送到HTTP请求中
当时,使用HttpWatch这样的工具时,无法在Http请求中找到散列后面的参数,因为散列后面的参数对浏览器而不是服务器端起作用。
3. 任务位于井号后面的字符都是位置标识符
无论第一个井号后面有什么参数,井号后面的参数始终被视为位置标识符。
例如这样的链接(http://example.com/color=# ffff amp; shape=circle ),后面的参数是颜色和形状,但服务器无法理解URL的意思。 服务器收到的是
4. 改变井号后面的参数不会触发页面的重新加载但是会留下一个历史记录
如果更改散列标签后面的内容,浏览器只会滚动到适当的位置,而不会再现加载的页面。
例如,从http://www.httpwatch.com/features.htm # filter到http://www.httpwatch.com/features.htm # print,浏览器将重新请求页面(注: IE6和IE7中的井号更改不会增加历史记录。 )
5、可以通过javascript使用window.location.hash来改变井号后面的值
名为window.location.hash的属性可以更改URL中的散列参数。 根据这个原理,可以创建一天的新访问记录,而无需重新加载页面。 例如,标记框架页面当前页面:
此外,当#的值发生变化时,HTML 5中新添加的onhashchange事件也会触发。
6. Googlebot对井号的过滤机制
缺省情况下,Google将忽略散列标记后面的参数,并且不运行页面中的javascript。 但是,如果Google为了支持由Ajax生成的内容的索引,单击定义了在URL中使用“#”的情况,则Google会自动将后面的内容转换为查询字符串_escaped_fragment_的值
例如,最新的twitter URL: http://twitter.com/#! /username,Google自动通过http://Twitter.com/_ escaped _ fragment _=/username获取Ajax内容。
另外可以用#结合?等元素来标记流量来源,比如区分竞价和自然流量等,这个就很给力了.