如何实施#!基于链接?

时间:2011-08-29 21:18:42

标签: javascript jquery html dom hashbang

我一直想知道如何使用网址中的##!即时浏览网页。像Google这样的许多网站都在http://www.google.com/nexus/上使用它,当用户点击任何链接时,没有任何变化,事情会立即打开,只有网址更改,例如:www.example.com/#contactwww.example.com/#home

如何使用我的8个页面执行此操作? (主页,功能,价格,联系方式,支持)

2 个答案:

答案 0 :(得分:4)

您可能需要查看基本的AJAX教程(例如http://marc.info/?l=php-general&m=112198633625636&w=2)。 URL使用的真正原因#!是让它们被谷歌索引。如果您希望Google将AJAX网址编入索引,则必须实施对_escaped_fragment_的支持(请参阅:http://code.google.com/web/ajaxcrawling/docs/specification.html)。

答案 1 :(得分:2)

使用它的唯一原因是在URL中显示AJAX增强页面的状态。这样,您可以复制并将网址加入书签以返回相同的状态。

较旧的浏览器不允许您更改地址栏中的网址而不重新加载网页。最新的浏览器(搜索PushState)。要解决此问题,您可以更改网址的哈希值。这是通常用于跳转到锚点的部分,但您可以使用JavaScript将其用于其他目的。

此过程并非严格必需!!由Google实施。它允许对这些网址进行索引。通常,散列不会单独编制索引,因为它们只标记同一页面(锚点)的不同部分。但是,通过添加!,您可以创建shebanghashbang 由Google编制索引。

如果不解释这里的所有内容,在搜索Ajax,HashBang和PushState时应该会找到很多信息。

补充:检查History.js。它是PushState api的包装器,可以回溯到在旧版浏览器上使用哈希值。