location 是 javascript 中管理地址栏内置对象,设置或获取当前URL的信息,使用location对象可以设置或返回URL中的一些信息,一个完整的URL地址的格式为:协议://主机:端口/路径名称#hash标识?搜索条件,如:location.href = url 直接将页面重定向 url,而 location.hash 则可以用来获取或设置页面的标签值,如:http://www.yoodb.com/#admin ,location.hash = "#admin" 。
1)其中,协议是URL的起始部分,用于指定该URL地 址所采用的通信协议,比如http、ftp等;
2)主机是指该URL所对应的服务器的名称;端口用于指定服务器用于通信的端口号,与主机名之间使用冒号隔开;
3)路径名称是指该URL所对应的网页文件在服务器上的虚拟路径;如果页面中含有锚点连接,可以使用hash标志指定页面中的锚点标志,该标志以“#”开头;
4)搜索条件是指URL中所含有的查询条件,该查询条件以“?”开头,以“变量名称=值”的形式出现,多个查询条件之间使用连接符“&”连接。
location.hash 函数,每次点击都会调用test(),它会改变url的值,具体代码如下:
<html> <head> <script type="text/javascript"> var i = 0; function test(){ window.location.hash = i++; } </script> </head> <body> <input type="submit" value="按钮" onclick="test()"/> </body> </html>
注意:
Google抓取#的机制,默认情况下,Google的网络蜘蛛忽视URL的#部分,但是Google还规定,如果你希望Ajax生成的内容被浏览引擎读取,那么URL中可以使用"#!",Google会自动将其后面的内容转成查询字符串_escaped_fragment_的值。
如:http://www.yoodb.com/#!/username 会自动抓取另一个URL:http://www.yoodb.com/?_escaped_fragment_=/username 通过此机制 Google 动态索引 Ajax 内容。